requests

作者: 蒲小帅丶 | 来源:发表于2018-12-03 09:31 被阅读0次

requests库

基本用法api
用法
获取url response=requests.get("www.baidu.com")
获取状态码 response.states_code
返回html response.text
返回头部信息 response.headers
返回请求的url response.url
解码 response.content.decode("utf-8")
请求方式

get(),post(),put()等
相关代码

import requests
response=requests.get("https://www.baidu.com/")
content=response.text
#print(content)
data={
    'first':True,
    'pn':1,
    'kd':"后端开发"
}
headers={
    'Referer':"https://www.lagou.com/jobs/list_%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=",
    'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
}
response1=requests.post("https://www.lagou.com/jobs/companyAjax.json?needAddtionalResult=false",data=data,headers=headers)
print(response1.json())
response的对象属性
属性 说明
r.status_code HTTP请求的返回状态,200表示成功
r.text 页面对应内容
r.encodeing 获取Header中猜测的响应内容编码方式
r.apparent_encoding 从内容中分析出响应内容编码方式(备用编码)
r.content HTTP响应内容的二进制形式

注意:response.text和response.content的区别

  1. response.content:从网络上获取的数据,没有经过任何解码,所以是bytes类型,在硬盘和网络上都是以bytes传递的
  2. response.text这是进行了解码的字符串,requests会根据自己的猜测判断编码方式,如果猜测错误,就会乱码,这时候就可以使用response.content.decode("utf-8")进行手动解码
requests库异常
异常 说明
requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常
Requests使用代理

https://www.httpbin.org/ip 该网站能展示你 当前电脑请求ip
参考资料

  1. 动态设置User-Agent
  2. 使用代理IP,这是爬虫/反爬虫的第二大招,通常也是最好用的。
proxy = {
    'http': '117.131.99.210:53281'
}
response = requests.get("https://www.httpbin.org/ip", proxies=proxy)
处理cookies

使用seesion回话对象,保存登录对象

import requests

url = "http://www.renren.com/SysHome.do"
data = {
    'email': "xxxxxx@qq.com",
    'password': 'xxxxx'
}
headers = {
    'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
}
session = requests.session()
session.post(url=url, data=data, headers=headers)
response = session.get("http://www.renren.com/xxxxx/profile")
with open("renren.html", 'w', encoding='utf8') as fp:
    fp.write(response.text)
处理不信任的SSL证书

添加 verify=flase

相关文章

网友评论

      本文标题:requests

      本文链接:https://www.haomeiwen.com/subject/hzkhcqtx.html