问候,
我做了:
import urllib
site = urllib.urlopen('http://www.weather.com/weather/today/Temple+TX+76504')
site_data = site.read()
site.close()
但它与在firefox中加载时查看源代码无法比较。
我怀疑用户代理并执行了此操作:
class AppURLopener(urllib.FancyURLopener):
version = "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.2.8) Gecko/20100722 Ubuntu/10.04 (lucid) Firefox/3.6.8"
urllib._urlopener = AppURLopener()
并下载了它,但它仍然没有下载整个网站。
有人可以帮我做用户代理切换,如果这可能是罪魁祸首吗?
谢谢, Narnie
答案 0 :(得分:3)
代码中有iframe
或javascript正在修改DOM的可能性更大。如果是iframe,则必须解析页面以获取iframe的网址,或者只是一次性地手动执行。如果是javascript,我听说selenium-rc很好但没有第一手经验。
答案 1 :(得分:2)
本地显示的下载页面可能看起来不同于几个原因,例如有相对链接(可以修复,例如将<base href="http://www.weather.com/today/">
添加到页头元素中),或非功能性ajax请求(请参阅{{3} })。