抓取静态网页数据
一、urllib库
1.学习目标
1.urllib库是什么?
2.如何使用urllib库快速爬取网页
3.用urllib库进行数据传输
4.代理服务器
5.异常处理方法
1.什么是urllib库
urllib库是Python编写爬虫程序操作URL的常用内置库。urllib库包含四大模块:
urllib.request:请求模块
urllib.error:异常处理模块
urllib.parse:URL解析模块
urllib.robotpaser:robots.txt解析模块
2.如何使用urllib库快速爬取网页
下面使用utllib快速爬取一个网页,具体代码如下:
import urllib.request
response=urllib.request.urlopen('http://www.baidu.com')
html=response.read().decode('UTF-8')
print(html)
爬取网页结果如下:
分析urlopen方法:urlopen方法可以接受多个参数。参数如下:
url--表示目标资源在网站中的位置。
data--用来指明向服务器发送请求的额外时间。
timeout--该参数用于设置超时时间,单位是秒。
context--熟悉爱你SSL加密传输。
使用HTTPResponse对象:使用urlopen方法发送HTTP请求后,服务器返回后的响应内容封装在一个HTTPResponse类型的对象中。
HTTPResponse类属于http.client模块,该类提供了获取URL、状态码、相应内容等一系列方法。
构造Request对象:如果希望对请求执行复杂操作,则需要创建一个Request对象来作为urlopen方法的参数。
3.使用urllib实现数据传输
3.1URL编码转换
当传递的URL包含中文或者其他特殊字符时,需要使用urllib.parse