在简单爬虫中,第二个步骤就是使用网页下载器对网页进行下载以及获取下载请求的状态等。urllib2 库主要用于读取网页内容以及请求状态、cookielib 库主要为了增加网页下载器处理 cookie 的能力。
前往 >> 【阅读全文】
1、导入第三方扩展库
1# 导入 urllib2 库、用于网页下载
2importurllib2
3# 导入 cookielib 库、处理 cookie 信息
4importcookielib
2、urlopen() 函数实现网页下载
1defuse_urlopen(url):
2ifurlisNone:
3# 定义爬虫的 url
4url ="http://www.baidu.com"
5# 打开网页下载链接
6response = urllib2.urlopen(url)
7# 打印请求的响应状态,200 时表示成功
8print"网页请求状态:", response.getcode()
9# read() 读取网页源代码内容
10content = response.read()
11# 打印源代码内容
12print"源代码内容:", content
13# 获取源代码内容的字符串长度
14print"网页字符串长度:", len(content)
3、Request() 函数模拟浏览器实现网页下载
1defuse_request(url):
2ifurlisNone:
3# 定义爬虫的 url
4url ="http://www.baidu.com"
5# 构造 request 请求
6request = urllib2.Request(url)
7# 添加构造请求头
8request.add_header("user-agent","Mozilla/5.0")
9# 打开网页下载链接
10response = urllib2.urlopen(request)
11# 打印请求的响应状态,200 时表示成功
12print"网页请求状态:", response.getcode()
13# read() 读取网页源代码内容
14content = response.read()
15# 打印源代码内容
16print"源代码内容:", content
17# 获取源代码内容的字符串长度
18print"网页字符串长度:", len(content)
4、build_opener() 函数加入网页下载器处理 cookie 的能力
1defuse_build_opener(url):
2ifurlisNone:
3# 定义爬虫的 url
4url ="http://www.baidu.com"
5# 获取 cookie 对象
6cookie = cookielib.CookieJar()
7# 将 cookie 处理能力加入 opener
8opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
9# 安装 opener
10urllib2.install_opener(opener)
11# 打开下载链接
12response = urllib2.urlopen(url)
13# 打印请求的响应状态,200 时表示成功
14print"网页请求状态:", response.getcode()
15# read() 读取网页源代码内容
16content = response.read()
17# 打印源代码内容
18print"源代码内容:", content
19# 获取源代码内容的字符串长度
20print"网页字符串长度:", len(content)
21# 打印 cookie 信息
22print"cookie 信息",cookie