试图浏览政府网站上成百上千的PDF文件。想尽快完成吗

2024-04-26 22:54:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在美国的技术手册中搜索任何与堤坝和洪水事件有关的东西。我想大概有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) 

代码同样适用于此文件。。。但我不知道如何加快这个过程


Tags: 文件代码importurlifpdfresponsevm
1条回答
网友
1楼 · 发布于 2024-04-26 22:54:45

如果linked file有什么值得借鉴的话,我认为这个任务的规模可能相当困难

这个文件是9.6MB,所以如果它是400000个文件的精确表示,那么我们将下载并保存9.6*400000=3840,00MB(3.8TB)

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

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

你可以尝试通过过滤过去20年左右的文件来减少这个数字

相关问题 更多 >