Python验证URL转到页面

时间:2010-10-28 09:23:35

标签: python

我有一个已存储超过一年的网址列表(1000+)。我想彻底验证它们以确定它们是否仍然存在。什么是最好/最快的方法来检查它们并返回一个没有返回网站的列表?

2 个答案:

答案 0 :(得分:11)

这有点慢,但你可以使用这样的东西来检查url是否是实时的

import urllib2

try:
    urllib2.urlopen(url)
    return True         # URL Exist
except ValueError, ex:
    return False        # URL not well formatted
except urllib2.URLError, ex:
    return False        # URL don't seem to be alive

比urllib2更快,您可以使用httplib

import httplib

try:
    a = httplib.HTTPConnection('google.com')
    a.connect()
except httplib.HTTPException as ex:
    print "not connected"

你也可以进行DNS结账(检查网站是否不存在不是很方便):

import socket

try:
    socket.gethostbyname('www.google.com')
except socket.gaierror as ex:
    print "not existe"

答案 1 :(得分:0)

检查一下:

Ping in python

那么结束:

import ping, socket
try:
    result = ping.do_one('http://stackoverflow.com/', timeout=2)
except socket.error, e:
    # url cannot be reached
    print "Error:", e