requests库使用

基本的库有:urllib requests

1.urllib较为复杂,麻烦。爬虫通常不使用。所以这里介绍requests。

先讲.获取资源的几种请求方法:

  • get 方法 -------直接从服务器那里获得资源。
  • post方法 --------修改服务器上的资源。大多是提交表单或许上传文件,数据包含在请求体中
  • put方法 ----------从客户端想服务器发送数据并取代指定服务器上的内容
  • delete 方法 ------------请求服务器删除指定页面
  • connect 方法 ----------当服务器为跳板,让服务器代替客户端访问其他网页
  • options 方法 -----------允许客户端查看服务器的性能
  • trace方法 -------------回显服务器收到的请求,主要用于测试

通常爬虫中常用到get方法和post方法。其余当了解即可。

requests基本用法
get请求实例引入:

import requests

url="https://www.baidu.com"
res=requests.get(url)
#返回网页的状态码 200表示获取成功 404表示资源不存在,找不到。
print(res.status_code)
print(r.encoding)#请过请求头的猜测是编码方式返回
print(r.apparent_encoding)#通过请求体得到的编码方式
#打印html文档   text方法默认通过请求头猜测的编码方式进行编码,有时会出错
print(r.text)
print(r.content)#返回二进制数据,也就是字节形式的文件
#content表示返回原字符,未进行编码过的,也就是字节形式的文件。这里通过自己指定,此处是utf-8编码方式。ignore表示忽略非法字符。很重要
print(r.content.decode("utf-8",'ignore'))  
print(r.cookies)#返回cookie信息    

何为cookie?请看:https://blog.youkuaiyun.com/weixin_43919632/article/details/84899174

2.requests库中post方法和get方法中的一些参数解释:
1).params 接收关键字的
实例:注意看wd,wd后面是什么,百度搜出来的就是什么,这是百度搜索的一个接口。通过修改wd后面的内容,就可以搜索想要的东西了。
在这里插入图片描述

import requests
url="https://www.baidu.com/s?"
keywords={"wd":"python"}
r=requests.get(url,params=keywords)

3).headers 设置请求头的

import requests
#有时,没有请求头访问某些页面,会被判断是爬虫程序,会被拒绝访问,因此构建请求头,伪装浏览器访问资源,是一种反爬虫手段
header={“user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}
r=requests.get("http://www.baidu.com",headers=header)

4).data 表单数据,有时通过修改表单数据,可以进行翻页。用post请求
5).proxies 添加代理的。
6).verify=False 表示不检测SSL证书。有时候访问网页,会返回“您的链接不是私密链接“,可通过不验证证书,避免错误。
7).cookies 传入cookie信息的,也可通过header将cookie放入请求头中
8.)timeout 超时设置 由于本机网络不好,或者服务器响应慢,而出现报错。我们需要设置timeout来设置响应等待时间,等待响应。单位:s
9). auth 身份认证.访问某些网站时,会出现身份认证。

import requests
r=requests.get(url,auth=(username,password))
#其他认证方式 
其他认证方式如:OAuth认证
需要的包  requests_oauthlib   
官方文档:https://2.python-requests.org//zh_CN/latest/user/authentication.html

10.) 会话维持。Session()方法

import requests
#设置cookie信息   number=123456789
requests.get("http://httpbin.org/cookies/set/number/123456789")
#获得cookie信息
r=requests.get("http://httpbin.org/cookies")
print(r.text)

结果:cookies信息是空的,没设置成功。

在这里插入图片描述
原因分析:用了两次get请求,两次获取页面不一样了。
解决方法:用Session

import requests
s=requests.Session()
s.get("http://httpbin.org/cookies/set/number/123456789")
r=s.get("http://httpbin.org/cookies")
print(r.text)
"""
用Session保持会话维持,请求是在一个请求上
"""

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190424004542248.png)

11.)file 上传文件的

import requests

url="https://httpbin.org/post"
file={"file":open("this is test file .py","rb")}
r=requests.get(url,files=file)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值