Here is the Website I am trying to scrape http://livingwage.mit.edu/Python-> Beautifulsoup-> Webscraping-> Looping über URL (1 bis 53) und Speichern Ergebnisse
Die spezifischen URLs sind von
http://livingwage.mit.edu/states/01
http://livingwage.mit.edu/states/02
http://livingwage.mit.edu/states/04 (For some reason they skipped 03)
...all the way to...
http://livingwage.mit.edu/states/56
Und auf jeder dieser URLs, ich brauche die letzte Zeile der zweiten Tabelle:
Beispiel für http://livingwage.mit.edu/states/01
Erforderliche Jahreseinkommen vor Steuern $ 20.260 $ 42.786 $ 51.642 $ 64.767 $ 34.325 $ 42.305 $ 47.345 $ 53.206 $ 34.325 $ 47.691 56.934 $ $ 66.997
Wunsch Ausgang: 60.933
Alabama $ 20.260 $ 42.786 $ 51.642 $ 64.767 $ 34.325 $ 42.305 $ 47.345 $ 53.206 $ 34.325 $ 47.691 $ 56.934 $ 66.997
Alaska $ 24.070 $ 49.295 $ $ 79,871 $ 38,561 $ 47,136 $ 52,233 $ 61,531 $ 38,561 $ 54,433 $ 66,316 $ 82,403
...
...
Wyoming $ 20.867 42.689 $ $ 52.007 $ 65.892 $ 34.988 $ 41.887 $ 46.983 $ 53.549 $ 34.988 $ 47.826 $ 57.391 $ 68.424
Nach 2 Stunden um von Messing, ist das, was ich bisher habe (ich bin ein Anfänger):
import requests, bs4
res = requests.get('http://livingwage.mit.edu/states/01')
res.raise_for_status()
states = bs4.BeautifulSoup(res.text)
state_name=states.select('h1')
table = states.find_all('table')[1]
rows = table.find_all('tr', 'odd')[4:]
result=[]
result.append(state_name)
result.append(rows)
Wenn ich die STATE_NAME und Zeilen in Python Konsole betrachtet es gibt mir die hTML-Elemente
[<h1>Living Wag...Alabama</h1>]
und
[<tr class = "odd... </td> </tr>]
Problem 1: Das sind die Dinge, die ich in der gewünschten Ausgabe wollen, aber wie kann ich Python es mir in einem String-Format zu geben, anstatt HTML wie oben?
Problem 2: Wie durchlaufe ich request.get (url01 bis url56)?
Vielen Dank für Ihre Hilfe.
Und wenn Sie einen effizienteren Weg bieten können, um die Zeilenvariable in meinem Code zu bekommen, würde ich es sehr schätzen, weil die Art, wie ich dorthin komme, nicht sehr Pythonic ist.
Vielen Dank, das ist genau das, was ich brauche. Nun, wie kann ich dies als die akzeptierte Antwort für meine Frage markieren? –
@OmiSlash. Keine Sorge, ich sehe, du hast es herausgefunden. –
Ich habe die letzten paar Tage damit verbracht, deine Codes zu studieren, und ich muss sagen, dass es so pythonisch ist, dass es direkt über meinen Kopf ging. Also gibt es das Sprichwort, einem Kerl einen Fisch zu geben, füttern Sie ihn für einen Tag, lehren Sie ihn zu fischen und Sie füttern ihn für ein Leben lang. Ich lese die Anfrage-Dokumentation und verstehe einige grundlegende HTML. Ich habe einen Fisch von dir erhalten und es sei denn, du willst, dass ich immer wieder zurückkomme, um deine Hilfe beim Webscraping zu erbitten (und du würdest dir auch einige rechtschaffene Punkte verdienen), kannst du deinen Gedanken- und Workflowprozess durchgehen wie Sie diesen Code erstellen? –