给出一个大的网址列表,有什么方法可以检查哪些是活动/非活动的?

时间:2012-11-16 21:35:44

标签: python

假设我提供了这个网址列表:

  

website.com/thispage

     

website.com/thatpage

     

website.com/thispageagain

     

website.com/thatpageagain

     

website.com/morepages

......可能超过1k urls。

通过此列表循环并检查页面是否已启动的最佳/最简单方法是什么?

4 个答案:

答案 0 :(得分:5)

对每个请求执行HEAD请求。

使用此库:http://docs.python-requests.org/en/latest/user/quickstart/#make-a-request

requests.head('http://httpbin.org/get').status_code

答案 1 :(得分:5)

这是Python中的一个例子

import httplib2

h = httplib2.Http()
listUrls = ['http://www.google.com','http://www.xkcd.com','http://somebadurl.com']
count = 0

for each in listUrls:
    try:
        response, content = h.request(listUrls[count])
        if response.status==200:
            print "UP"
    except httplib2.ServerNotFoundError:
        print "DOWN"
    count = count + 1

答案 2 :(得分:2)

有一个SO答案显示如何在Python中执行HEAD请求:

How do you send a HEAD HTTP request in Python 2?

答案 3 :(得分:1)

打开一个线程池,为每个线程打开一个Url,等待200或404.冲洗并重复。