【问题标题】:python fails to fetch a whole web pagepython无法获取整个网页
【发布时间】:2011-07-26 06:43:58
【问题描述】:

我正在做一个scrapy项目来抓取http://58.com上的一些数据

我发现使用scrapy抓取时页面中缺少一些div。

我认为这可能与请求头有关,所以我将Firefox的用户代理复制到伪造的,只是发现它失败了。

可能是什么问题,我该如何解决?


我发现问题是网页使用ajax加载一些数据,我找不到这些数据。

【问题讨论】:

  • 如果您使用urllib2检索页面,是否会发生这种情况?另外,您可以尝试beautifulsoup 进行抓取。虽然可能是该网站正在重新加载内容。
  • 我会先使用 Firebug 或 wireshark 之类的工具来查看浏览器是如何加载页面的。
  • @enzo 请问“divs”是什么意思?是“DivX 格式”吗?
  • div 是指一些 div 元素。
  • @enzo 您如何观察到某些 div 丢失了?你如何检测缺失?如果scrapy不适合你的情况,为什么不使用正则表达式来找到你需要的东西,如果它仅限于找到一些特定的字符串而不必解析源代码,严格来说

标签: python web-crawler scrapy


【解决方案1】:

使用 urllib2,试试这个 req.add_header('User-Agent', "Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)")

我可以通过请求

【讨论】:

    【解决方案2】:

    有一个名为 pycurl 的 libcurl 的 python 绑定。我使用 pycurl 来模拟人类访问网站的行为,效果很好。对于 html 解析,beautifulsoup 是最好的选择,你可以很容易地从你使用 pycurl 获取的 html 中得到你想要的。

    【讨论】:

    • 我发现问题是网页使用 ajax 来加载这些信息。 pycurl 有效吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多