【问题标题】:Scraping ajax pages using python使用python抓取ajax页面
【发布时间】:2013-04-29 16:58:39
【问题描述】:

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

我只有一个 url,example.com 你通过点击提交从一个页面转到另一个页面,因为他们使用 ajax 来显示内容,所以 url 不会改变。我想抓取每个页面的内容,怎么做?

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

【问题讨论】:

    标签: python ajax web-scraping screen-scraping scrapy


    【解决方案1】:

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

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

    • 打开浏览器开发者工具,网络标签
    • 转到目标站点
    • 单击提交按钮,看看XHR request 将向服务器发送什么
    • 在你的蜘蛛中模拟这个XHR请求

    另见:

    希望对您有所帮助。

    【讨论】:

    • 我指的是这个 url blog.scrapy.org/scraping-ajax-sites-with-scrapy‎ 不再可用,感谢提醒我 readthedocs.com
    • 知道了。如果您在蜘蛛实现方面遇到问题,请考虑发布另一个问题,包括您要抓取的网址、点击的按钮等。祝您抓取愉快!
    【解决方案2】:

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

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

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

    复制整个请求标头和表单数据以加载到上述变量中​​,一切顺利

    【讨论】:

    • 如果我找不到 XHR 请求怎么办?它在 Chrome 或 FoxFox 网络工具中不可见。但是,有一个 AJAXSetup.js 文件。有没有其他方法可以找到这些信息?
    猜你喜欢
    • 2022-11-12
    • 2017-08-28
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多