python urllib2 - Warten, bis die Seite das Laden / Weiterleiten vor dem Scrappen beendet?

9

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: Ссылка

    
Ken 12.07.2012, 20:27
quelle

1 Antwort

6

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

%Vor%

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%     
Samy Vilar 12.07.2012, 21:03
quelle

Tags und Links