Python爬虫中Requests的使用

Requests

  • HTTP for Humans,更简洁更友好
  • 继承了urllib的所有特征
  • 底层使用的是urllib3
  • 开源地址: 开源地址
  • 中文文档: 中文文档
  • 安装: conda install requests
  • get请求
    • requests.get(url)
    • requests.request(“get”, url)
    • 可以带有headers和parmas参数
import requests

url = "http://www.baidu.com"
# 两种请求方式
# 使用get请求
rsp = requests.get(url)
print(rsp.text)

# 使用request请求
rsp = requests.request("get", url)
print(rsp.text)

  • get返回内容
'''
使用参数headers和params
研究返回结果

'''

import requests

# 完整访问url是下面url加上参数构成
url = "http://www.baidu.com/s?"

kw = {
    "wd": "王八蛋"
}

headers = {
    "User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36"
}
rsp = requests.get(url, params=kw, headers=headers )

print(rsp.text)         # 返回主页html
print(rsp.content)      # 返回bytes流
print(rsp.url)          # 返回请求网址,编码后的
print(rsp.encoding)     # 返回编码方式
print(rsp.status_code) # 请求返回码
  • post

    • rsp = requests.post(url, data=data)

    • date, headers要求dict类型

  • proxy

          proxies = {
          "http":"address of proxy",
          "https": "address of proxy"
          }
          
          rsp = requests.request("get", "http:xxxxxx", proxies=proxies)
    
    • 代理有可能报错,如果使用人数多,考虑安全问题,可能会被强行关闭
  • 用户验证

    • 代理验证

        #可能需要使用HTTP basic Auth, 可以这样
        # 格式为  用户名:密码@代理地址:端口地址
        proxy = { "http": "china:123456@192.168.1.123:4444"}
        rsp = requests.get("http://baidu.com", proxies=proxy)
      
  • web客户端验证

    • 如果遇到web客户端验证,需要添加auth=(用户名,密码)

        autu=("test1", "123456")#授权信息
        rsp = requests.get("http://www.baidu.com", auth=auth)
      
  • cookie

    • requests可以自动处理cookie信息

          rsp = requests.get("http://xxxxxxxxxxx")
          # 如果对方服务器给传送过来cookie信息,则可以通过反馈的cookie属性得到
          # 返回一个cookiejar实例
          cookiejar = rsp.cookies   
          
          
          #可以讲cookiejar转换成字典
          cookiedict = requests.utils.dict_from_cookiejar(cookiejar)         
      
  • session

    • 跟服务器端session不是一个东东

    • 模拟一次会话,从客户端浏览器链接服务器开始,到客户端浏览器断开

    • 能让我们跨请求时保持某些参数,比如在同一个session实例发出的 所有请求之间保持cookie

        # 创建session对象,可以保持cookie值
        ss = requests.session()
        
        headers = {"User-Agetn":"xxxxxxxxxxxxxxxxxx"}
        
        data = {"name":"xxxxxxxxxxx"}
        
        # 此时,由创建的session管理请求,负责发出请求,
        ss.post("http://www.baidu.com", data=data, headers=headers)
        
        rsp = ss.get("xxxxxxxxxxxx")
      
  • https请求验证ssl证书

    • 参数verify负责表示是否需要验证ssL证书,默认是True

    • 如果不需要验证ssl证书,则设置成False表示关闭

        rsp = requests.get("https://www.baidu.com", verify=False)
        # 如果用verify=True访问12306,会报错,因为他证书有问题 
      
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值