02requests的使用
requests的使用
一、requests模块
1.1 request模块的安装
在CMD
命令行中执行如下命令进行在线安装
pip install requests
由于网络的不稳定性有时会导致下载失败,在下载的时候我们可以加上第三方源进行下载
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
pip install requests -i https://pypi.mirrors.ustc.edu.cn/simple/
1.2 request模块的使用
-
requests.get():表示向网站发送GET请求,获取页面响应对象。语法如下:
response = requests.get(url,headers=headers,params)
url
:要抓取的url
地址。- headers:用于包装请求头信息。
params
:请求时携带的查询字符串参数。
-
HttpResponse
响应对象:我们使用requests模块向一个URL发起请求后会返回一个HttpResponse
响应对象。- 响应对象属性:
- text:获取响应内容字符串类型
- content:获取到响应内容bytes类型(抓取图片、音频、视频文件)
- encoding:查看或者指定响应字符编码
- request.headers:查看响应对应的请求头
- cookies:获取响应的cookie,经过了set-cookie动作;返回
cookieJar
类型 json()
:将json
字符串类型的响应内容转换为python对象
- 响应对象属性:
-
发送带header的请求
http://httpbin.org/get?usernane=1 查看get请求的一些参数
import requests url = 'http://httpbin.org/get' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36' } html = requests.get(url=url,headers=headers).text print(html)
-
发送带参数的请求
- 直接对含有参数的URL发起请求
- 通过
params
携带参数字典 - 构建请求参数字典
- 向接口发送请求的时候带上参数字典,参数字典设置给
params
- 向接口发送请求的时候带上参数字典,参数字典设置给
-
-
处理cookie相关的请求:Cookie是一个记录了用户登录状态以及用户属性的字符串。当你第一次登陆网站时,服务端会在返回的Response Headers中添加Cookie, 浏览器接收到响应信息后,会将Cookie 保存至浏览器本地存储中,当你再次向该网站发送请求时,请求头中就会携带Cookie,这样服务器通过读取 Cookie 就能识别登陆用户了。
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", "Cookie":"__utma=32101439.446453095.1567515939.1567855225.1596027512.4; __utmc=32101439; __utmz=32101439.1596027512.4.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmt=1; __utmb=32101439.1.10.1596027512" }
cookie_dict = {"cookie的key:“cookie的value"} requests.get(url, headers=headers, cookies=cookie_dict)
-
requests.post():适用场景 : Post类型请求的网站
requests.post(url=url,data=data,headers=headers)
-
requests提供了一个叫做session类,来实现客户端和服务端的会话保持。会话能让我们在请求时候保持某些参数,比如在同一个 Session 实例发出的所有请求之间保持 cookie
二、反爬手段
1.UA伪装
UA为用户代理,服务器能够识别客户使用的操作系统及版本,浏览器信息等
2.代理IP
西次代理,快代理
3.验证码访问
超级鹰,云代码平台
4.动态加载网页
selenium驱动真实浏览器发动请求
5.数据加密
分析js代码