(整理) 爬虫入门教程一、二、三、(第二节有待补充)

爬虫(一抓取网页的含义和URL构成)
URI(universal resource identifier):通用资源标识符。用于对web上每种可用资源定位。
URI的组成:
1.访问资源的命名机制。
2.存放资源的主机名
3.资源自身的名称,由路径表示(注意这部分通常会被处理,如显示的事html1223但却被存在路径html40路径下)
URL(Uniform Resourced Locator):统一资源定位符,是URI的一个子集。
也由三部分组成。、
1.协议。
2.主机的ip地址,有时包裹端口号。
3.主机资源的具体地址,如目录和文件名.
文件的URL
通常以file://开头。




(二)利用URlib2通过指定的URl抓取网页内容。


python中用urllib2这个组件来抓取网页。
import urllib2#导入urllib2库
req = urllib2.Request('http://www.baidu.com')#指定要访问的地址
response = urllib2.urlopen(req) #打开这个地址
the_page = response.read()
print the_page#输出这个网址内容


#指定浏览器的
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' 
#
Mozilla/4.0  一种浏览器的名称


compatible 适合的;兼用的


MSIE6.0 微软公司出品的IE浏览器6.0版本


Windows NT 5.1 微软公司出品的服务器操作系统


SV1=Security Version 1 安全版本1


QQDownload 1.7 QQ下载软件的版本1.7



(三)异常处理和Http状态码的分类


用以下代码处理异常:
try: urllib2.urlopen(req)


except urllib.URLError,e:
print e.reason


Http状态码:
2xx:请求成功
3xx:重定向
4xx:  请求失败
5xx:服务器端错误


错误页面的处理:
只需把上面的e.read改为 e.code


常用异常捕获代码:
except URLError, e:    
    
    if hasattr(e, 'reason'):    
    
        print 'We failed to reach a server.'    
    
        print 'Reason: ', e.reason    
    
    elif hasattr(e, 'code'):    
    
        print 'The server couldn\'t fulfill the request.'    
    
        print 'Error code: ', e.code 


在捕获异常时HTTPError必须放在URLError前面,因为HTTPError是URLError的子类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值