codecamp

scrapy 2.3 复制请求

有时,我们需要以Web浏览器执行请求的方式重新生成请求。

使用 network tool 查看Web浏览器如何执行所需的请求,并尝试用scrapy重新生成该请求。

它可能足以产生 Request 使用相同的HTTP方法和URL。但是,您可能还需要复制body、headers和form参数(请参见 FormRequest )关于那个请求。

因为所有主流浏览器都允许在中导出请求 cURL 格式,Scrapy合并的方法 from_curl() 生成等价物 Request 从cURL命令。欲了解更多信息,请访问 request from curl 在“网络工具”部分中。

一旦得到预期的响应,您就可以 extract the desired data from it .

你可以用Scrapy复制任何请求。但是,有时复制所有必需的请求在开发人员时间内似乎不高效。如果是这样,爬行速度对你来说不是主要的问题,你也可以考虑 JavaScript pre-rendering .

如果你得到预期的答复 sometimes 但并非总是这样,问题可能不是您的请求,而是目标服务器。目标服务器可能有问题、过载或 banning 你的一些要求。

注意,要将cURL命令转换为Scrapy请求,可以使用 curl2scrapy .

scrapy 2.3 检查网页的源代码
scrapy 2.3 处理不同的响应格式
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

scrapy 2.3 链接提取器

scrapy 2.3 统计数据集合

scrapy 2.3 发送电子邮件

scrapy 2.3 蜘蛛合约

scrapy 2.3 如何部署蜘蛛

scrapy 2.3 AutoThrottle扩展

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }