如何更快地找出 HTTP 状态?
How to findout HTTP status faster?
我有一个大小为 10 GB 的文件。该文件主要包含 URLs。我正在尝试获取每个 URL 的 HTTP 状态代码并将它们存储到另一个扩展名为 .CSV
的文件中。
我搜索了代码并找到了使用 Python 访问 URL 状态代码的解决方案:
import requests
request = requests.get('http://www.example.com')
print(request.status_code)
但它需要一个 URL。我有一个更大的文件。我不知道如何将 URLs 从文件输入到此命令。甚至如何以 .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 中的输出存储为:
URL,Http Status code
例如:
http://google.com,200
http://example.com,503
希望这有助于理解我的查询。
curl 能做到的,pythonrequests 经常能做到,而且做得更好。和 curl 一样,它也有一个 HEAD 方法。
import requests
response = requests.head('http://www.example.com')
print(response.status_code)
我有一个大小为 10 GB 的文件。该文件主要包含 URLs。我正在尝试获取每个 URL 的 HTTP 状态代码并将它们存储到另一个扩展名为 .CSV
的文件中。
我搜索了代码并找到了使用 Python 访问 URL 状态代码的解决方案:
import requests
request = requests.get('http://www.example.com')
print(request.status_code)
但它需要一个 URL。我有一个更大的文件。我不知道如何将 URLs 从文件输入到此命令。甚至如何以 .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 中的输出存储为:
URL,Http Status code
例如:
http://google.com,200
http://example.com,503
希望这有助于理解我的查询。
curl 能做到的,pythonrequests 经常能做到,而且做得更好。和 curl 一样,它也有一个 HEAD 方法。
import requests
response = requests.head('http://www.example.com')
print(response.status_code)