我正在学习制作网页抓取工具,并希望抓取TripAdvisor的个人项目,并使用urllib2抓取html。 但是,我遇到了一个问题,使用下面的代码,我得到的html不正确,因为页面似乎需要一秒钟重定向(您可以通过访问url来验证) - 取而代之的是,代码来自最初短暂出现的页面。python urllib2 - 等待页面在抓取前完成加载/重定向?
是否有一些行为或参数要设置,以确保页面在获取网站内容之前完全加载/重定向?
import urllib2
from bs4 import BeautifulSoup
bostonPage = urllib2.urlopen("http://www.tripadvisor.com/HACSearch?geo=34438#02,1342106684473,rad:S0,sponsors:ABEST_WESTERN,style:Szff_6")
soup = BeautifulSoup(bostonPage)
print soup.prettify()
编辑:答案是彻底的,但是,在什么解决我的问题是这样的结尾: https://stackoverflow.com/a/3210737/1157283
犯规的urllib引发错误?有这种情况下的redirectdirector ... – 2012-07-12 20:50:54
@DonQuestion没有错误,我只是从被重定向之前短暂出现的页面获取html。我想从最后出现的页面获得html。这个redirectdirector是什么,你可以详细说明一下吗? – Ken 2012-07-12 20:55:26
如果你使用urlopen,你正在使用OpenerDirector.open()看看python-docs - 不幸的是它没有在2-3个字中解释:-(:http://docs.python.org/library/urllib2.html? highlight = urllib2#urllib2.OpenerDirector – 2012-07-12 21:08:53