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

                                                                     
                

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

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


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


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

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


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

           

               

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值