【问题标题】:Scrapy Pagination XHR 400 Bad RequestScrapy Pagination XHR 400 错误请求
【发布时间】:2018-03-05 12:01:06
【问题描述】:

我正在尝试从https://www.magzter.com/magazines/listAllIssues/503获取所有网址

在一组中,Page 显示 12 份杂志并滚动分页并继续下 12 份杂志

调试后,即将收到的请求如下

https://www.magzter.com/magazines/listAllIssues/503/12
https://www.magzter.com/magazines/listAllIssues/503/24

但是通过

获取到https://www.magzter.com/magazines/listAllIssues/503/12的请求
400 Bad Request

scrapy中是否有此场景的实现,请提供示例脚本。

或任何其他刺激无限滚动并使用scrapy框架的库

【问题讨论】:

  • 检查您发送到服务器的 POST(如果 POST 甚至是正确的方法)请求的格式是否正确;拥有所有必要的钥匙;诸如此类的事情。我还建议对 400 个请求进行更多研究。
  • @WiggyA。这是一个get方法
  • 那你为什么要发送 POST 请求?
  • @WiggyA。这是错字,我确实收到了请求,但错误仍然相同
  • 发布你的爬虫代码

标签: python pagination scrapy xmlhttprequest


【解决方案1】:

问题是该请求是 AJAX 请求并且不发送 X-Requested-With: XMLHttpRequest 标头使其成为 400 错误请求。没有办法直接从 shell 命令行发送 headers,所以你需要启动 shell 并键入命令来获取带有 headers 的请求

$ scrapy shell --nolog

>>> from scrapy import Request
>>> req = Request("https://www.magzter.com/magazines/listAllIssues/146/12", headers = {"X-Requested-With" : "XMLHttpRequest"})
>>> fetch(req)
>>> response.body
b'\r\n\t<div class="mag-wrap">\r\n    \t<h3></h3>\r\n    \t<ul class="mag-list main-magz">\r\n            <li>\r\n                        <div class="cover-wrap"><a href="https://www.magzter.com/IN/EFY-Enterprises-Pvt-Ltd/Electronics-For-You/Science/183025" onclick="ga(

【讨论】:

    猜你喜欢
    • 2020-05-14
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多