聚焦爬虫的流程
得到url_list即需要爬取的url地址,
发起请求,返回响应内容,
如果响应内容中还有你需要爬取的url再添加到url_list中,
再次发起请求,直到没有url或者不需要爬取的url,
提取数据,提取需要的数据,
最后一步,把数据存入数据库
requests模块
作用:发起请求,返回响应数据
requests的基本使用
requests.get(url)
response(响应的常见属性)
response.text # 响应内容,str类型 response.content # 响应内容,bytes类型 response.status_code # 响应状态码 response.request.headers # 响应对应的请求头 response.headers # 响应头 response.request.cookies # 响应对应请求的cookie response.cookies # 响应的cookie(经过了set-cookie动作)
response.text和response.content的区别
response.text 类型:str 如何修改编码方式: response.encoding=“gbk” response.content 类型: bytes 如何修改编码方式: response.content.deocde("utf8") 获取网页源码的通用方式: response.content.decode() response.content.decode("GBK") response.text
更推荐使用response.content.deocde()
的方式获取响应的html页面
response.request.headers
1.1 为什么要带上请求头
模拟浏览器,欺骗服务器,获取和浏览器一致的内容
1.2 header的类型
字典
1.3 用法
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
....
} # 把这个字典赋值进去
response.get(url, headers=headers)
请求参数
什么是请求参数
url问号后面的就是请求参数,也叫查询字符串
怎么获取
kw 也是一个字典类型 params=kw 这个就是获取查询字符串的属性 # 带上请求参数发起请求,获取响应 response = requests.get(url, headers=headers, params=kw)
requests模块
- 在python2 和python3中通用,方法完全一样
- requests简单易用
- Requests能够自动帮助我们解压(gzip压缩的等)响应内容