python使用urllib2抓取网页
2012-08-09 22:45
477 查看
1、使用python的库urllib2,用到urlopen和Request方法。
2、方法urlopen原形
urllib2.urlopen(url[,
data][, timeout])
其中:
url表示目标网页地址,可以是字符串,也可以是请求对象Request
data表示post方式提交给目标服务器的参数
timeout表示超时时间设置
改方法返回一个类似文件的对象,有geturl()、info()、read()方法其中geturl()返回连接地址,info()返回网页信息。
要获取网页内容可以使用read()方法,read也可以带参数,表示读取内容的大小(字节)。
例子:
这样,网页的内容(content)就爬下来了,但是有些网站禁止爬虫,如果直接请求会出现以下错误:
urllib2.HTTPError: HTTP Error 403: Forbidden
解决方法是可以在请求加上头信息,伪装成浏览器的访问行为,需要用到Request方法:
3、方法Request原型
urllib2.Request(url[,
data][, headers][, origin_req_host][, unverifiable])
其中:
url表示目标网页地址,可以是字符串,也可以是请求对象Request
data表示post方式提交给目标服务器的参数
headers表示用户标识,是一个字典类型的数据,有些不允许脚本的抓取,所以需要用户代理,像火狐浏览器的代理就是类似:Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11 浏览器的标准UA格式为:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息 ,headers默认是Python-urllib/2.6
origin_req_host表示请求方的主机域名或者ip地址
unverifiable还没搞懂。。。
看一个例子:
2、方法urlopen原形
urllib2.urlopen(url[,
data][, timeout])
其中:
url表示目标网页地址,可以是字符串,也可以是请求对象Request
data表示post方式提交给目标服务器的参数
timeout表示超时时间设置
改方法返回一个类似文件的对象,有geturl()、info()、read()方法其中geturl()返回连接地址,info()返回网页信息。
要获取网页内容可以使用read()方法,read也可以带参数,表示读取内容的大小(字节)。
例子:
>>> import urllib2 >>> socket = urllib2.urlopen("http://www.baidu.com") >>> content = socket.read() >>> socket.close()
这样,网页的内容(content)就爬下来了,但是有些网站禁止爬虫,如果直接请求会出现以下错误:
urllib2.HTTPError: HTTP Error 403: Forbidden
解决方法是可以在请求加上头信息,伪装成浏览器的访问行为,需要用到Request方法:
3、方法Request原型
urllib2.Request(url[,
data][, headers][, origin_req_host][, unverifiable])
其中:
url表示目标网页地址,可以是字符串,也可以是请求对象Request
data表示post方式提交给目标服务器的参数
headers表示用户标识,是一个字典类型的数据,有些不允许脚本的抓取,所以需要用户代理,像火狐浏览器的代理就是类似:Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11 浏览器的标准UA格式为:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息 ,headers默认是Python-urllib/2.6
origin_req_host表示请求方的主机域名或者ip地址
unverifiable还没搞懂。。。
看一个例子:
>>> headers = {'User-Agent':'Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11'} >>> req = urllib2.Request(url="http://blog.csdn.net/deqingguo",headers=headers) >>> socket = urllib2.urlopen(req) >>> content = socket.read() >>> socket.close()
相关文章推荐
- python爬虫之使用urllib2组件抓取网页内容
- 零基础写python爬虫之使用urllib2组件抓取网页内容
- 【转】python使用urllib2抓取网页
- python使用urllib2抓取网页
- 零基础写python爬虫之使用urllib2组件抓取网页内容
- Python 中利用urllib2简单实现网页抓取
- 使用Python抓取网页信息
- python3使用requests包抓取并保存网页源码
- Python爬虫使用代理proxy抓取网页
- 使用Python抓取网页信息
- python使用urllib2抓取防爬取链接
- 浅谈如何使用python抓取网页中的动态数据
- 萌新的Python学习日记 - 爬虫无影 - 使用BeautifulSoup + css selector 抓取自己想要网页内容
- 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies
- Python之安装pip&beautiful4&使用beautifulsoup4抓取简单网页
- 深度剖析使用python抓取网页正文的源码
- python2利用urllib2抓取中文网页乱码的问题
- 使用Python3编写抓取网页和只抓网页图片的脚本
- 使用Python抓取网页信息
- 使用 python urllib2 抓取网页时出现乱码的解决方案