使用python抓取ajax页面

问题描述 投票:0回答:2

我已经看过这个关于抓取ajax的问题,但是那里没有提到python。我考虑过使用 scrapy,我相信他们有一些关于该主题的文档,但正如你所看到的,该网站已关闭。所以我不知道该怎么办。我想做以下事情:

我只有一个网址,example.com,您可以通过单击“提交”从一个页面转到另一个页面,该网址不会更改,因为他们使用 ajax 来显示内容。我想抓取每个页面的内容,该怎么做?

假设我只想抓取数字,除了 scrapy 之外还有什么可以做到这一点吗?如果没有,您能给我一个关于如何执行此操作的片段吗,只是因为他们的网站已关闭,所以我无法访问文档。

python ajax web-scraping scrapy
2个回答
36
投票

首先,scrapy 文档可以在 https://scrapy.readthedocs.org/en/latest/ 获得。

谈论在网页抓取时处理ajax。基本上,这个想法相当简单:

  • 打开浏览器开发者工具,网络选项卡
  • 前往目标站点
  • 单击提交按钮,查看
    XHR
    请求
    将发送到服务器
  • 在你的蜘蛛中模拟这个
    XHR
    请求

另请参阅:

希望有帮助。


4
投票

我发现答案非常有用,但我想让它更简单。

response = requests.post(request_url, data=payload, headers=request_headers)

request.post 接受三个参数 url、data 和 headers。这三个属性的值可以在 XHR 请求中找到。

复制整个请求标头和表单数据以加载到上述变量中,然后就可以了

© www.soinside.com 2019 - 2024. All rights reserved.