爬虫的概念
- 爬虫是模拟浏览器发送请求,获取响应
爬虫的流程
-
url —> 发送请求,获取响应 —>提取数据—>保存
-
发送请求,获取响应 —>提取url
页面上的数据在哪里
- 当前url地址对应的响应中
- 其他的url地址对应的响应中
- 比如Ajax 请求中
- js生成的
- 部分数据在响应中
- 全部通过js生成
requests 中解决编解码的方法
- 修改编码方式:response.encoding=’’
- response.content.decode()
- response.content.decode(“gdk”)
- response.text
判断请求是否成功
- assert response.status_code==200
使用post请求
- 加入data字典
使用代理
-
浏览器—>request —>代理 —>requests—>web server
-
web server—>response—>代理—>response—>浏览器
-
准备一堆的IP地址,组成IP地址池,随机选择一个使用
-
检查IP代理的可用性
-
使用requests 添加超时参数,判断IP地址的质量
-
在线工具,在线代理IP质量检测网站
携带cookie请求
- 携带一堆的cookie进行请求,把cookie组成cookie池
使用resquests 提供的session类 请求登录之后的网站的思路
- 实例化session
- session=requests.session()
- 先使用session发送请求,登录网站,把cookie保存在session中
- session.post(post_url ,data=post_data,headers=headers)
- 再使用session请求登录之后才能访问的网站,session能够自动的携带登录成功时保存在其中的cookie,进行请求
- r =session.get(“登录后的url”,headers=headers)
不发送post请求 使用cookie 获取登录后的页面
- cookie过期时间很长的网站
- 在cookie 过期之前能够拿到所有的数据,比较麻烦,
- 配合其他程序一起使用,其他程序专门获取cookie,当前程序专门请求页面