Python爬虫判断url链接的是下载文件还是html文件

最近在写一个网络爬虫的代码,提供命令行来下载文件或者是打印根域名下指定节点及深度的子节点。用的是urllib2库,算是比较简单,但是功能并没有很强大。

说重点吧,在实际爬网页的过程中,一般的过程是一次调用下面的三个函数:

req = urllib2.Request(url)
response = urllib2.urlopen(req)
html = response.read()
所得到链接的内容就是保存在html中,然后便可以进行解析了。


但是在实际的爬虫中,我们所遇到的url不只是有html文件的,还有那些下载文件的链接,而对于这些链接对于爬取整个网络的框架是没有帮助的,不应当对其调用read函数获取内容。所以就需要对url所链接文件的类型进行判断从而过滤掉非html类型的链接。

对于文件类型的判断,是通过http header头部的Content Type项的内容来进行判断的。对于html类型Content Type的内容为“text/html",其他的可见网址:http://tool.oschina.net/commons。判断的代码如下:

HttpMessage = response.info()
ContentType = HttpMessage.gettype()
if "text/html" != ContentType:
如果是"text/html"类型的,则使用read函数,然后进行解析,否则进行下一个url的解析。

你可能感兴趣的:(python)