我想抓取一个有多个网页的网站,当点击一个网页编号时,它会动态加载。如何筛选它?
即因为网址不是href或如何抓取到其他网页?
如果有人帮我这么做会很棒。
PS:点击不同页面时,URL保持不变。
答案 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是另一个不错的选择。