Web-Scraping einer HTML-Tabelle, unklare div-/bzw class Tags
Verfasst: Samstag 6. März 2021, 17:55
Guten Tag zusammen,
ich beschäftige mich zur Zeit mit Python und finde die Sprache sehr intuitiv.
Im Moment möchte ich eine Tabelle mit Erdbebendaten aus
https://en.vedur.is/earthquakes-and-vol ... view=table
scrapen, die ich als Trainingsdaten nutzen will, um andere Anwendungen (z.B. R) damit zu nutzen.
Ich komme mit requests und BeautifulSoup schon etwas weiter, habe aber im Moment keinen "Anpacker" um an Daten der auf o.g. Seite sichtbaren Datentabelle zugreifen zu können.
Die in den verschieden verschachtelten div-Tags sichtbaren Hinweise <div id="qtable" class="qtable"> bekomme ich nicht 'gefasst".
Ich bitte um Hinweise, welcher Tag hier der richtige "Anfasser" ist.
Anmerkung: in einem script-Tag auf der Seite steht die komplette Liste der Messwerte zwar unschön aber erkennbar drin. Wie könnte ich alternativ daran kommen?
Ich danke für Hinweise.
Tom
Mein bisheriges Script:
import requests
from bs4 import BeautifulSoup
#python C:\tmp\python\scripts\basicscrape.py
url = 'https://en.vedur.is/earthquakes-and-vol ... view=table'
res = requests.get(url)
html_page = res.content
soup = BeautifulSoup(html_page, 'html.parser')
text = soup.find_all(text=True)
output = ''
blacklist = [
'[document]',
'noscript',
'header',
'html',
'meta',
'head',
'body',
'input',
# there may be more elements you don't want, such as "style", etc.
]
for t in text:
if t.parent.name not in blacklist:
output += '{} '.format(t)
print(output)
ich beschäftige mich zur Zeit mit Python und finde die Sprache sehr intuitiv.
Im Moment möchte ich eine Tabelle mit Erdbebendaten aus
https://en.vedur.is/earthquakes-and-vol ... view=table
scrapen, die ich als Trainingsdaten nutzen will, um andere Anwendungen (z.B. R) damit zu nutzen.
Ich komme mit requests und BeautifulSoup schon etwas weiter, habe aber im Moment keinen "Anpacker" um an Daten der auf o.g. Seite sichtbaren Datentabelle zugreifen zu können.
Die in den verschieden verschachtelten div-Tags sichtbaren Hinweise <div id="qtable" class="qtable"> bekomme ich nicht 'gefasst".
Ich bitte um Hinweise, welcher Tag hier der richtige "Anfasser" ist.
Anmerkung: in einem script-Tag auf der Seite steht die komplette Liste der Messwerte zwar unschön aber erkennbar drin. Wie könnte ich alternativ daran kommen?
Ich danke für Hinweise.
Tom
Mein bisheriges Script:
import requests
from bs4 import BeautifulSoup
#python C:\tmp\python\scripts\basicscrape.py
url = 'https://en.vedur.is/earthquakes-and-vol ... view=table'
res = requests.get(url)
html_page = res.content
soup = BeautifulSoup(html_page, 'html.parser')
text = soup.find_all(text=True)
output = ''
blacklist = [
'[document]',
'noscript',
'header',
'html',
'meta',
'head',
'body',
'input',
# there may be more elements you don't want, such as "style", etc.
]
for t in text:
if t.parent.name not in blacklist:
output += '{} '.format(t)
print(output)