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代码
posted @ 2023-04-05 00:43  LePenseur  阅读(18)  评论(0编辑  收藏  举报