Kratzen Sie mehrere Seiten mit Python und BeautifulSoup

Meinen code erfolgreich Schrammen die tr align=center-tags aus [ http://my.gwu.edu/mod/pws/courses.cfm?campId=1&termId=201501&subjId=ACCY ] und schreibt die td-Elemente in eine text-Datei.

Allerdings gibt es mehrere Seiten auf der Website oben in die ich möchte in der Lage sein zu kratzen.

Beispielsweise mit der url oben, wenn ich auf den link auf "Seite 2" die gesamte url NICHT ändern. Ich schaute auf die Seite Quelle und sah einen javascript-code, um auf die nächste Seite.

Wie kann mein code geändert werden, kratzen Sie die Daten aus allen verfügbaren aufgeführten Seiten?

Mein code, der arbeitet für die Seite 1 nur:

import bs4
import requests 

response = requests.get('http://my.gwu.edu/mod/pws/courses.cfm?campId=1&termId=201501&subjId=ACCY')

soup = bs4.BeautifulSoup(response.text)
soup.prettify()

acct = open("/Users/it/Desktop/accounting.txt", "w")

for tr in soup.find_all('tr', align='center'):
    stack = []
    for td in tr.findAll('td'):
        stack.append(td.text.replace('\n', '').replace('\t', '').strip())

    acct.write(", ".join(stack) + '\n')
Es ist nicht wirklich poosible mit Anfragen oder jede andere Hole html-Zeug-tool, wenn Sie wollen, zu tun, dass Sie mit einem go-web-driver wie selenium oder WebDriver, aber es ist viel komplizierter, dass die Anfrage.. viel Glück
Es ist nur die einfache URL-manipulation, wirklich. Prüfen Sie einfach die POST Anfragen, die mit Google Chrome inspection-tool oder Firebug für Firefox. Siehe meine Antwort unten.
man sollte vielleicht erklären, wie das zu tun, was Sie vorschlagen deine Antwort
Tun, Kumpel. Nur code hinzufügen, wie gut. 🙂
Jungs, btw, danke Euch beiden für die Aufbewahrung von web-scraping-tag in Form! 🙂

InformationsquelleAutor Philip McQuitty | 2014-10-21

Schreibe einen Kommentar