如何更快地找到HTTP状态?

时间:2017-01-05 07:55:07

标签: python csv url parallel-processing http-status-codes

我有一个大小为10 GB的文件。该文件主要包含URL。我正在尝试获取每个网址的HTTP状态代码,并将其存储到另一个扩展名为.CSV的文件中 我搜索了一个代码并找到了一个使用Python访问URL状态代码的解决方案:

import requests
request = requests.get('http://www.example.com')
print(request.status_code)

但它需要一个URL。我有一个更大的文件。我不知道如何将文件中的URL输入到此命令。甚至如何以.CSV格式存储输出 即使它不快。我正在寻找一个更快的解决方案,它将为我提供更快的10 GB文件结果 我也尝试了Ubuntu命令:

xargs -n1 -P 10 curl -o /dev/null --silent --head --write-out '%{url_effective},%{http_code}\n' < Input_File.txt > output.CSV

但它也不是多线程的。它一次占用一行,然后存储到CSV 所以,我的问题是如何在文件大小为10 GB的情况下更快地完成这项工作。如果在任何编程语言中有任何解决方案,我将很乐意实施 这是URL的示例文件 - 来自我的10 GB文件的一小块:
https://drive.google.com/file/d/0BzQ6rtO2VN95c0YzclhySVZYNDQ/view?usp=sharing
我想将输出存储为CSV格式:

  

网址,Http状态代码

例如:

http://google.com,200  
http://example.com,503  

希望这有助于理解我的疑问。

1 个答案:

答案 0 :(得分:1)

curl可以做什么,python请求通常可以做,并且做得更好。像curl一样,它也有一个HEAD方法。

import requests
response = requests.head('http://www.example.com')
print(response.status_code)