Python:urlopen不下载整个网站

时间:2010-08-11 23:03:15

标签: python urllib urlopen

问候,

我做了:

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

2 个答案:

答案 0 :(得分:3)

代码中有iframe或javascript正在修改DOM的可能性更大。如果是iframe,则必须解析页面以获取iframe的网址,或者只是一次性地手动执行。如果是javascript,我听说selenium-rc很好但没有第一手经验。

答案 1 :(得分:2)

本地显示的下载页面可能看起来不同于几个原因,例如有相对链接(可以修复,例如将<base href="http://www.weather.com/today/">添加到页头元素中),或非功能性ajax请求(请参阅{{3} })。