我试图在美国的技术手册中搜索任何与堤坝和洪水事件有关的东西。我想大概有40万个文件是由他们托管的,我正在编写代码来下载任何与我所学内容相关的pdf文件
我的代码工作,它只需要2分钟为一个单一的文件。我会扔到一个循环,一旦我得到这个工作很好,我认为这将增加更多的时间
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)
代码同样适用于此文件。。。但我不知道如何加快这个过程
如果linked file有什么值得借鉴的话,我认为这个任务的规模可能相当困难
这个文件是9.6MB,所以如果它是400000个文件的精确表示,那么我们将下载并保存9.6*400000=3840,00MB(3.8TB)
如果我们得到一个体面的下载速度1 MB/秒,这将需要1066小时(44天)。这是假设我们不受美国政府服务器的限制(如果他们看到我们的IP试图下载1TB+,他们可能会这样做)
另外一个有趣的哲学问题是,如果一台计算机需要44天才能将信息从数据库传输到内存中,我想知道一个人完成一个类似的过程需要多长时间
你可以尝试通过过滤过去20年左右的文件来减少这个数字
相关问题 更多 >
编程相关推荐