Ich lerne, um Web-Scraper zu machen und TripAdvisor für ein persönliches Projekt zu kratzen, indem ich den HTML-Code mit urllib2 packe. Ich stoße jedoch auf ein Problem, bei dem der HTML-Code, den ich zurückbekomme, nicht korrekt ist, da die Seite eine Sekunde zum Umleiten benötigt (du kannst dies überprüfen, indem du die URL besuchst) - stattdessen erhalte ich den Code von der Seite, die zunächst kurz erscheint.
Gibt es ein Verhalten oder einen Parameter, der eingestellt werden muss, um sicherzustellen, dass die Seite vollständig geladen / umgeleitet wurde, bevor der Inhalt der Website abgerufen wird?
%Vor%Bearbeiten: Die Antwort ist gründlich, aber am Ende, was mein Problem gelöst hat, war dies: Ссылка
Inerresting das Problem ist nicht eine Weiterleitung ist diese Seite ändert den Inhalt mit Javascript, aber urllib2
hat keine JS
engine es nur GETS
Daten, wenn Sie Javascript in Ihrem Browser deaktiviert, werden Sie feststellen Es lädt im Grunde den gleichen Inhalt wie was urllib2
zurückgibt
test.html
und JS in Ihrem Browser deaktivieren, am einfachsten im Firefox-Inhalt - & gt; Deaktivieren Sie Javascript aktivieren, erzeugt identische Ergebnismengen.
Was können wir also gut machen? Zuerst sollten wir prüfen, ob die Website eine API anbietet, und das Abwracken neigt dazu, missbilligend zu sein Ссылка
Reise- / Hotel-APIs Es sieht so aus, als könnten sie das tun, allerdings mit einigen Einschränkungen.
Aber wenn wir es noch mit JS abkratzen müssen, dann können wir selenium
Ссылка verwenden, das hauptsächlich zum Testen verwendet wird, aber sein einfach und hat ziemlich gute Dokumente.
Ich fand auch diese Scraping-Websites mit Javascript aktiviert? und dies Ссылка
hoffe das hilft.
Als Randnotiz:
%Vor%