【问题标题】:How to get data for XMLHTTP requests using scrapy如何使用 scrapy 获取 XMLHTTP 请求的数据
【发布时间】:2015-10-19 10:19:58
【问题描述】:

我感兴趣的数据的网页有一些 XHR 请求。 我已经使用开发人员工具获得了 XHR 请求的 url。 现在如何在我的 spider.py 文件中实现相同的功能以及如何获取其中的所有值。我从scrapy 开始,不知道像这样使用 ajax 发布请求。请指导我如何获取数据并希望将可用字段存储在 Excel 文件中。

【问题讨论】:

    标签: python ajax xmlhttprequest scrapy


    【解决方案1】:

    您需要从脚本内部模拟网络请求。为此,您可以执行以下操作:

    url = 'your url string'
    req = scrapy.Request(url,
                         method='POST',
                         body='{"filters": []}',
                         headers={'X-Requested-With': 'XMLHttpRequest',
                                  'Content-Type': 'application/json; charset=UTF-8'},
                         callback=self.parser2)
    yield req
    

    这只是一个示例,可能不符合您的确切用例。您需要调查实际请求以确定要发送的标头、正文以及是否要进行回调。

    【讨论】:

    • 这是我真正想从中抓取的 url [link](cognizant.taleo.net/careersection/indapac_itbpo_ext_careermoresearch.ftl?lang=en#)。我的 XHRrequest 来自这个 url link。我的代码是解析中是这样的:
      'def parse(self, response): hs = Selector(response) items = [] for x in links: item = CrawlsiteItem() #item["title"] = x.xpath (".//span[@class= 'titlelink']/a//text()").extract() items.append(item) return items `
    • 这里的主要问题是,如果您查看 XHR 请求,您会发现在 POST 请求中发送到服务器的参数很多。您必须找到它们中的最小集合,以使您的应用程序清晰易读。
    • @Muttonchop 我正在寻找的数据在开发人员工具的网络选项卡内的预览和响应标签中可见。现在如何分析它并获取数据并将逻辑放入我的蜘蛛中。
    • @SreeSindhuSruthi 您提出的问题非常广泛,对您已经完成的工作没有任何了解。每个浏览器都不同,理解网络请求的工具也不同。
    • @Muttonchop 其实我刚开始使用scrapy框架,我已经了解如何获取静态页面的数据。对于 ajax 请求,我没有得到任何帮助我理解数据抓取的教程或链接。所以,我想在论坛上寻求帮助。评论有字符限制,因此我无法分享我的作品或图片。
    猜你喜欢
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多