批量HTTP状态请求

时间:2018-12-22 09:14:34

标签: php python cron

我没有任何编码知识。 我需要运行一个脚本。那必须能够获取站点的http状态代码。输出必须像

一样提供

domain.com 301 domain.com 200

我需要检查庞大的网站列表,例如200k网址。因此,它必须同时更快。我有代理运行它多线程。

任何帮助/想法都受到高度赞赏!

1 个答案:

答案 0 :(得分:0)

下面是线程和串行方法。我尚未测试它可以支持的并发线程的限制,因此您可能需要实现一些代码来限制此限制。

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')