使用Scrapy保存文件的Python网站爬虫
我正在尝试写一个爬虫,它可以根据某个搜索内容,保存一堆与结果相关的 .CSV 文件。
我已经让爬虫登录了,解析了我需要的所有 HTML 数据,现在我只需要弄明白怎么保存这些文件。
搜索返回的链接像这样: https://www.thissite.com/data/file_download.jsp?filetype=1&id=22944
在网页浏览器中,这个链接会提示你保存相关的 .csv 文件。我该如何让我的爬虫加载这个页面并下载文件呢?或者有没有办法让我找到一个静态链接来获取这些信息?
1 个回答
1
如果你找到了CSV文件的链接,可以直接用wget来下载这些文件,wget这个工具也可以用来登录网页。
你可以指定--http-user和--http-passwd,或者像下面这样使用cookies:
$ wget --cookies=on --keep-session-cookies --save-cookies=cookie.txt --post-data "login=USERNAME&password=PASSWORD" http://first_page
$ wget --referer=http://first_page --cookies=on --load-cookies=cookie.txt --keep-session-cookies --save-cookies=cookie.txt http://second_page
这取决于你的网站是怎么处理登录的。用wget登录网页还有其他几种方法,你可以通过谷歌搜索找到这些方法。
我建议把这些操作放在一个特别的Scrapy Pipeline里,这样就可以在Scrapy中完成,而不是在外部脚本中处理。