如何抓取页面导航涉及动态加载的网站

时间:2013-01-24 13:58:27

标签: python web-crawler

我想抓取一个有多个网页的网站,当点击一个网页编号时,它会动态加载。如何筛选它?

即因为网址不是href或如何抓取到其他网页?

如果有人帮我这么做会很棒。

PS:点击不同页面时,URL保持不变。

6 个答案:

答案 0 :(得分:2)

您还应该考虑Ghost.py,因为它允许您运行任意javascript命令,填写表单并快速进行快照。

答案 1 :(得分:1)

如果您使用谷歌浏览器,您可以检查动态调用的网址 network->headers开发人员工具

所以基于此,您可以确定它是GET还是POST请求。

如果是GET请求,您可以直接从网址找到参数。

如果是POST请求,您可以在form data network->headers中找到{{1}}的参数 开发人员工具。

答案 2 :(得分:0)

您可以在javascript代码中查找所需的数据,而不是HTML。这通常是一种痛苦,但你可以用正则表达式来做有趣的事情。

或者,某些浏览器测试库(如splinter)可以通过在抓取之前在firefox或chrome等实际浏览器中加载页面来工作。如果您在安装了浏览器的计算机上运行此程序,其中一个将起作用。

答案 3 :(得分:0)

由于此帖子已使用python和web-crawler标记,因此必须提及Beautiful Soup:http://www.crummy.com/software/BeautifulSoup/

此处的文档:http://www.crummy.com/software/BeautifulSoup/bs3/download/2.x/documentation.html

答案 4 :(得分:0)

你不能轻易做到这一点因为它是一个ajax分页(即使是mechanize)。相反,打开页面的源文件,并尝试知道用于ajax分页的url请求是什么。然后,您可以创建一个虚假请求并按照您自己的方式处理返回的数据

答案 5 :(得分:0)

如果你不介意使用gevent。GRobot是另一个不错的选择。