图像

python自动抓取指定正则url并验证url的可访问性

最近客户都头疼全国网站普查,站外链接属于其中之一,几乎每家都有问题,我本来想用Xenu(Google推荐的工具),不过实在有点小试牛刀,所以想想还是用python写个,对了,别以为我很厉害,我只是会用python罢了,离牛很远。


我的想法就是检测网页中select中option中value的站外链接是否可访问,分两步,解析和可访问验证(检查http header返回码),我测了一下,不是很准,因为和你本机的网络也有关系。
我没写成多线程,因为工作量不大,当然你可以改造,代码如下:

# !/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'jerry'

import re
import urllib2

def get_url(url):
    try:
        res=urllib2.urlopen(url)
        code=res.getcode()
        return code
    except urllib2.HTTPError as e:
        return e.code
    except:
        return 0

url='http://fgw.gzlps.gov.cn'
s=urllib2.urlopen(url).read()
urls=re.findall(r'value="[a-zA-Z]+://[^\s]*"',s,re.I)
print "url check begin..."
i=1
bad_url=[]
for url in urls:
    url=url[7:-1]
    code= get_url(url)
    if code != 200:
        print i,url
        i=i+1
        bad_url.append(url)
print "url check over..."
print bad_url

我对程序还做了升级,这里就不贴了,大家自由发挥。
这代码没有什么含量,标题名字好像霸气点。enjoy~

发表评论