爬虫(一抓取网页的含义和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
用以下代码处理异常:
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的子类。
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
用以下代码处理异常:
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的子类。