1 urllib爬虫库
1.1 库的使用
1.2 urllib中包括了四个模块,包括:
- urllib.request:可以⽤来发送request和获取request的结果
- urllib.error:包含了urllib.request产⽣的异常
- urllib.parse:⽤来解析和处理URL
- urllib.robotparse:⽤来解析⻚⾯的robots.txt⽂件
1.3 urllib.request.Request构建请求
class urllib.request.Request(url, data=None, headers={},origin_req_host=None,unverifiable=False, method=None)
- 第⼀个参数是请求链接,这个是必传参数,其他的都是可选参数
- data 参数如果要传必须传 bytes (字节流)类型的,如果是⼀个字典,可以先⽤
- urllib.parse.urlencode() 编码。
- headers 参数是⼀个字典,你可以在构造 Request 时通过 headers 参数传递,也可以通过调⽤
- Request 对象的 add_header() ⽅法来添加请求头。
- origin_req_host 指的是请求⽅的 host 名称或者 IP 地址。
- unverifiable 指的是这个请求是否是⽆法验证的,默认是 False 。意思就是说⽤户没有⾜够权限来
选择接收这个请求的结果
- method 是⼀个字符串,它⽤来指示请求使⽤的⽅法,⽐如 GET , POST , PUT 等等。
2 requests爬虫库
2.1 requests库的使⽤
# 通过使⽤pip命令来安装requests
pip install requests
2.2 使用示例
import requests
import re
url = "http://www.baidu.com"
# 抓取信息
res = requests.get(url)
#获取HTTP状态码
print("status:%d" % res.status_code)
# 获取响应内容
data = res.content.decode("utf-8")
#解析出结果
print(re.findall("<title>(.*?)</title>",data))
2.3 requests的响应对象:requests.models.Response
- response.text 获取str类型(Unicode编码)的响应
- response.content 获取bytes类型的响应
- response.content.decode("utf-8") 将获取的bytes类型进⾏解码(转字串)
- response.status_code 获取响应状态码
- response.headers 获取响应头
- response.request 获取响应对应的请求
网友评论