Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用scrapy查询数据库中的PDF,然后下载它们_Python_Web Scraping_Scrapy - Fatal编程技术网

Python 使用scrapy查询数据库中的PDF,然后下载它们

Python 使用scrapy查询数据库中的PDF,然后下载它们,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我不熟悉scrapy和python,所以请记住:) 我正在做一项研究,我需要从政府网站下载大量公开的PDF文档。问题是大约有11000页的搜索结果,每一页都有10个PDF 我想做的是使用scrapy编写一个脚本: 1) 将预定义的搜索参数传递给网站上的文档搜索引擎(例如关键字、企业名称、日期开始、日期结束等) 2) 运行搜索查询并获取结果 3) 自动下载作为查询结果显示的所有PDF(不仅仅是结果的第一页),这些PDF与我定义的参数匹配到我的机器/将它们上载到google驱动器 我能用点什么吗?我

我不熟悉scrapy和python,所以请记住:)

我正在做一项研究,我需要从政府网站下载大量公开的PDF文档。问题是大约有11000页的搜索结果,每一页都有10个PDF

我想做的是使用scrapy编写一个脚本:

1) 将预定义的搜索参数传递给网站上的文档搜索引擎(例如关键字、企业名称、日期开始、日期结束等) 2) 运行搜索查询并获取结果 3) 自动下载作为查询结果显示的所有PDF(不仅仅是结果的第一页),这些PDF与我定义的参数匹配到我的机器/将它们上载到google驱动器

我能用点什么吗?我还没有发现任何能做到这一点的东西——任何帮助都将不胜感激,这是一个非常好的理由

这就是我目前所处的位置:

import scrapy
从scrapy.http导入请求
fos级(刮痕蜘蛛):
name=“XXX”
允许的_域=[“XXX”]
起始URL=[“XXX”]
def解析(自我,响应):
for href in response.css('div#all_results h3 a::attr(href')。extract():
让步请求(
url=response.urljoin(href),
callback=self.parse_文章
)
def parse_文章(自我,回复):
对于response.css中的href('div.download_包装器a[href$=“.pdf”]::attr(href')。extract():
让步请求(
url=response.urljoin(href),
callback=self.save\u pdf
)
def save_pdf(自我,响应):
path=response.url.split('/')[-1]
self.logger.info('保存PDF%s',路径)
将open(路径“wb”)作为f:
f、 写入(response.body)

除了python和scrapy之外,我建议对这么多页面使用线程。
这是一个很好的例子。

Scrapy是完成这类任务的绝佳工具,它可以节省执行其他自定义函数的时间,并使用它的管道,您可以使用自己喜欢的库(即multiprocessing.pool.ThreadPool)并行下载文件(PDF)


如果您可以共享确切的链接,我可以直接为您提供帮助。

您有python和scrapy。你有你需要的一切。到目前为止你都尝试了什么?谢谢Alec的留言-你是对的,我似乎拥有我所需要的一切,但考虑到我对编码如此陌生,导航起来有点棘手。我将添加我正在使用的代码…您不需要“保存pdf”,下载“解析文章”中的图像。使用“BytesIO”获取和存储文件。感谢Ohad-感谢您的回复,我将对此进行调查!感谢Janib-一个类似于我们正在查看的网站是:感谢Janib。与我们正在查看的站点类似的站点是:?