【发布时间】:2018-12-22 19:00:55
【问题描述】:
我没有任何编码知识。 我需要运行一个脚本。那必须能够获取站点的 http 状态代码。输出必须像
domain.com 301 domain.com 200
我需要检查大量网站,例如 20 万个网址。所以,它必须同时更快。我有代理来运行它多线程。
非常感谢任何帮助/想法!
【问题讨论】:
我没有任何编码知识。 我需要运行一个脚本。那必须能够获取站点的 http 状态代码。输出必须像
domain.com 301 domain.com 200
我需要检查大量网站,例如 20 万个网址。所以,它必须同时更快。我有代理来运行它多线程。
非常感谢任何帮助/想法!
【问题讨论】:
下面是一个线程和串行的方法。我没有测试它可以支持的并发线程的限制,所以你可能想实现一些代码来限制它。
from threading import Thread
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
class Site (Thread):
def __init__(self, thissite):
Thread.__init__(self)
self.pool = urllib3.PoolManager()
self.site = thissite
print('Started Thread for', self.site)
def run(self):
try:
r = self.pool.request('GET', self.site)
print('Thread Result', self.site, r.status)
except:
print('Thread Result', self.site, '404')
sitelist = []
f = open('D:\\Downloads\\SiteList.txt', 'r')
for x in f:
print('[' + x.strip() + ']')
sitelist.append(x.strip())
http = urllib3.PoolManager()
for site in sitelist:
Check = Site(site)
Check.start()
for site in sitelist:
try:
r = http.request('GET', site)
print('Serial Result', site, r.status)
except:
print('Serial Result', site, '404')
【讨论】: