tarifa
Lieutenant
- Registriert
- März 2020
- Beiträge
- 617
Hallo und guten Abend,
es geht um einen Parser der Infos aus einer HTML-Seite ziehen will. Insgesamt hab ich einige dieser Seiten
vgl. hier: https://s3platform.jrc.ec.europa.eu/digital-innovation-hubs-tool
hier also ein Auszug der URLs
Aber zunächst geht es mal um das Parsen einer Seite - und zwar will ich die jeweilige Description des Hubs herausholen:
Mein Ansatz:
Ich komm nicht ran an die Info der Beschreibung - Description:
Ich will auf der Seite die Description-Info (also die Beschreibungen) parsen - und gewissermaßen herausziehen. Das allerdings gelingt nicht. Was immer ich mache - ich lande bei den Kontaktinfos.
Die Zielseite ist diese hier: https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/1096/view
Und es soll gehen um diese Description _ also die jeweilige Projektbeschreibung.
btw.: über die diversen Urls iterieren - das würd ich ggf. so machen
Das mit dem Iterieren - das sollte grundsätzlich gehen.
es geht um einen Parser der Infos aus einer HTML-Seite ziehen will. Insgesamt hab ich einige dieser Seiten
vgl. hier: https://s3platform.jrc.ec.europa.eu/digital-innovation-hubs-tool
hier also ein Auszug der URLs
Python:
'https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/1096/view',
'https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/17865/view',
'https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/1416/view'
Aber zunächst geht es mal um das Parsen einer Seite - und zwar will ich die jeweilige Description des Hubs herausholen:
Mein Ansatz:
Python:
import requests
from bs4 import BeautifulSoup
from pprint import pprint
url = 'https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/1096/view'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html5lib')
# The Name des hubs ist in dem <h2> tag.
# viele weitern Infos des hubs - die sind in einem <h2> tag.
hubname = soup.find('h4').text
# die description info - sie befindet sich in einem <div class='hubCardContent'>.
description = soup.find("div", class_="hubCardContent")
cardinfo = {}
# Herausholen der <p> tags die innerhalb des div. the infoLabel class sich befinden
for data in contact.find_all('p'):
if 'infoLabel' in data.attrs.get('class', []):
title = data.text
cardinfo[title] = []
else:
cardinfo[title].append( data.text )
# Die Kontakt-Info - sie befindet sich in einem a <div> innerhalb eines infoLabel class div.
# for data in contact.find_all('div', class_='infoMultiValue'):
# cardinfo['Contact information'].append( data.text)
print("---")
print(hubname)
print("---")
pprint(cardinfo)
Ich komm nicht ran an die Info der Beschreibung - Description:
Ich will auf der Seite die Description-Info (also die Beschreibungen) parsen - und gewissermaßen herausziehen. Das allerdings gelingt nicht. Was immer ich mache - ich lande bei den Kontaktinfos.
Die Zielseite ist diese hier: https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/1096/view
Und es soll gehen um diese Description _ also die jeweilige Projektbeschreibung.
btw.: über die diversen Urls iterieren - das würd ich ggf. so machen
Python:
import requests
import bs4
import sleep from time
URLs = ['https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/1096/view',
'https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/17865/view',
'https://s3platform-legacy.jrc.ec.europa.eu/digital-innovation-hubs-tool/-/dih/1416/view'
]
def getPage(url):
print('Indexing {0}......'.format(url))
result = requests.get(url)
print('Url Indexed...Now pausing 50secs before next ')
sleep(50)
return result
results = map(getPage, URLs)
for result in results:
# soup = bs4.BeautifulSoup(result.text,"lxml")
soup = bs4.BeautifulSoup(result.text,"html.parser")
print(soup.find_all('p'))
Das mit dem Iterieren - das sollte grundsätzlich gehen.
Anhänge
Zuletzt bearbeitet: