Web scraping Scrapy-如何保存提交后生成的文件
在向cboe.com网站提交表单时,它会发送一个需要保存到磁盘的文件,然后重新定向到同一表单页面 如何保存使用Scrapy返回的文件?我有下面的代码,但它不能得到一个句柄的文件,因为它得到重定向Web scraping Scrapy-如何保存提交后生成的文件,web-scraping,scrapy,Web Scraping,Scrapy,在向cboe.com网站提交表单时,它会发送一个需要保存到磁盘的文件,然后重新定向到同一表单页面 如何保存使用Scrapy返回的文件?我有下面的代码,但它不能得到一个句柄的文件,因为它得到重定向 import scrapy class FileDownload(scrapy.Spider): name = 'Test' def parse(self, response): return scrapy.FormRequest.from_response(
import scrapy
class FileDownload(scrapy.Spider):
name = 'Test'
def parse(self, response):
return scrapy.FormRequest.from_response(
response,
formdata={'txtTicker': 'AAPL'},
callback=self.after_download
)
def start_requests(self):
yield scrapy.Request(
'http://www.cboe.com/delayedquote/quote-table-download',
meta = {
'dont_redirect': True,
'handle_httpstatus_list': [302]
}
)
def after_download(self, response):
if(response is None):
print("--------Empty response for download----------")
else:
print(response)
return
scrapy的日志片段
2020-06-06 19:15:02[刮屑核心引擎]调试:爬网(200)http://www.cboe.com/delayedquote/quote-table-download>(推荐人:无)
2020-06-06 19:15:14[scrapy.extensions.logstats]信息:抓取1页(每分钟1页),抓取0项(每分钟0项)
2020-06-06 19:18:22[scrapy.extensions.logstats]信息:爬网1页(0页/分钟),爬网0项(0项/分钟)
2020-06-06 19:18:27[scrapy.downloadermiddleware.redirect]调试:重定向(302)到http://www.cboe.com/delayedquote/quotedata.dat>从http://www.cboe.com/delayedquote/quote-table-download>
2020-06-06 19:25:54[scrapy.extensions.logstats]信息:抓取1页(以0页/分钟的速度),抓取0项(以0项/分钟的速度)
2020-06-06 19:25:55[scrapy.downloadermiddleware.redirect]调试:重定向(302)到http://www.cboe.com/delayedquote/quote-table-download>从http://www.cboe.com/delayedquote/quotedata.dat>
2020-06-06 19:25:55[scrapy.dupefilters]调试:筛选的重复请求:http://www.cboe.com/delayedquote/quote-table-download>-不再显示重复项(请参阅DUPEFILTER\u DEBUG以显示所有重复项)
2020-06-06 19:25:55[刮屑芯发动机]信息:关闭卡盘(已完成)
2020-06-06 19:25:55[垃圾统计]信息:倾倒垃圾统计数据:
是我需要保存的数据文件
谢谢看起来您的字段名有误(
txtTicker
):
看起来您的字段名有误(
txtTicker
):
def parse(self, response):
yield scrapy.FormRequest.from_response(
response,
formdata={
'ctl00$ContentTop$C005$txtTicker': 'AAPL',
'ctl00$ContentTop$C005$cmdSubmit': 'Download',
},
callback=self.after_download
)