首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图在政府网站上搜索数以百计的pdf文件。我想尽可能快地做这件事

试图在政府网站上搜索数以百计的pdf文件。我想尽可能快地做这件事
EN

Stack Overflow用户
提问于 2019-08-23 05:04:24
回答 1查看 84关注 0票数 1

我正在搜索美国的技术手册,寻找任何与防洪和防洪事件有关的信息。我认为它们托管了大约40万个文件,我正在尝试编写代码来下载任何与我正在研究的内容相关的pdf文件。

我有的代码工作,它只需要2分钟的单个文件。一旦我让它工作得很好,我就会把它扔进一个循环,我想这会增加更多的时间。

代码语言:javascript
复制
import requests
import sys
import os
from pathlib import Path
import requests

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}

url = 'https://apps.dtic.mil/dtic/tr/fulltext/u2/a125775.pdf'

response = requests.get(url, headers=headers)

result = response.text

result1 = result.find('{{vm.optionsDisplay(vm.model)}}" value="0') 

if result1 == -1:

    print("sucks to suck")

else:

    with open("python.pdf","wb") as pdf: 

        for chunk in response.iter_content(chunk_size=1024): 

            if chunk: 

                pdf.write(chunk) 

同样,代码也适用于此文件...但我想不出如何加快这一过程。

EN

回答 1

Stack Overflow用户

发布于 2019-08-23 05:32:57

如果linked file可以作为衡量标准的话,我认为这项任务的规模可能相当困难。

此文件大小为9.6MB,因此如果它是400,000个文件的准确表示,那么我们将下载并节省9.6*400,000=3,840,00MB (3.8 TB)

如果我们的下载速度达到1MB/s,这将需要1066小时(44天)。这是假设我们不受美国政府服务器的限制(如果他们看到我们的IP试图下载1TB+,他们可能会这样做)

还有一个有趣的哲学问题是,如果一台计算机需要44天将信息从数据库传输到它的内存中,我想知道一个人需要多长时间才能完成类似的过程。

在过去的20年左右,你可以尝试通过过滤文件来减少文件的数量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57617045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档