python3 爬虫之requests模块使用总结

Posted nancyzhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 爬虫之requests模块使用总结相关的知识,希望对你有一定的参考价值。

Requests 是第三方模块,如果要使用的话需要导入。Requests也可以说是urllib模块的升级版,使用上更方便。

这是使用urllib的例子。

import urllib.request
import json
url = http://www.weather.com.cn/data/sk/101190408.html
res = urllib.request.urlopen(url)#发送请求
result = res.read().decode()#获取结果,结果是byte类型的需要decode()
print(json.loads(result))

 

下面是Requests 模块的使用。

支持的请求:

requests.get(‘https://github.com/timeline.json’) #GET请求
requests.post(“http:xxx.xx.com/post”) #POST请求
requests.put(“http:xxx.xx.com/put”) #PUT请求
requests.delete(“http:xxx.xx.com/delete”) #DELETE请求
requests.head(“http:xxx.xx.com/head”) #HEAD请求
requests.options(“http:xxx.xx.com/get”) #OPTIONS请求

发送GET请求:

import requests,json
url = http://api.xx.cn/api/user/stu_info?stu_name=hi
req = requests.get(url)#发送get请求
print(req.text)#获取结果直接返回的就是json串
print(type(req.text)) #str
print(json.loads(req.text))#json转字典
print(req.json())#获取结果就是字典,只有返回的是json串的话才能用req.json()
print(type(req.json()))#dict

发送POST请求

url = http://api.xxx.cn/api/user/login
data = {username:aa,passwd:123}
req = requests.post(url,data)#发送post请求,第一个参数是url,第二个参数是请求的数据
print(req.json())

发送格式为json的数据

url = http://api.xxx.cn/api/user/add_stu
data = {
    "name":"aa",
    "grade":"bb",
    "phone":13512530000,
 
  }
req = requests.post(url,json=data)#发送post请求,第一个参数是url,第二个参数是请求的数据,发送的json的话就写json=data
print(req.json())

发送带cookie的请求

url = http://api.xx.cn/api/user/gold_add
data = {stu_id:231,gold:100}
cookie = {aa:3d867b361afdaac1381b02ae746c7278}#key 为登陆的用户名,value为sign的值
req = requests.post(url,data,cookies=cookie)#添加cookie
print(req.json())

发送的请求中带Header

url = http://api.xxx.cn/api/user/all_stu
header = {User-Agent:Chrome}
req = requests.get(url,headers = header)
print(req.json())

上传文件

url = http://api.xxx.cn/api/file/file_upload
f = open(rD:\\aa.jpg,rb)#图片要指定以二进制方式打开
r =requests.post(url,files={file:f})
print(r.json())

下载文件,图片,视频

url = https://images2017.cnblogs.com/blog/412654/201712/412654-20171213115213238-464712233.png
r =requests.get(url)
print(r.status_code)#获取请求状态码
print(r.content)#获取返回结果二进制格式的
fw = open(bt.jpg,wb)#当前路径
#fw = open(r‘d:\\bt.jpg‘,‘wb‘)#指定绝对路径
fw.write(r.content)#将二进制格式内容写入文件
fw.close()

爬虫,把网页保存到本地

url = http://www.cnblogs.com/nancyzhu/p/8029994.html
r = requests.get(url)
f = open(page.html,wb)
f.write(r.content)
f.close()

 






以上是关于python3 爬虫之requests模块使用总结的主要内容,如果未能解决你的问题,请参考以下文章

网络爬虫之requests模块

python3 爬虫之爬取糗事百科

Python之爬虫总结

python爬虫之requests+selenium+BeautifulSoup

python爬虫开发之urllib模块详细使用方法与实例全解

Python 爬虫之urllib库,及urllib库的4个模块基本使用和了解