- 爬虫需用到python的requests库
import requests
-
requests库的七个主要方法
除 request()方法的其余六个方法实际是调用 request()方法,是基于request()方法封装起来的,所以其实用到的方法只有request方法。六个方法对应以下HTTP的六个操作
其中put()和patch()方法的区别,如果资源有很多属性(例如姓名,年龄)用put()方法改动姓名,则需要把所有属性一起提交,没有提交的属性将会被删除。用patch()方法则只需要提交姓名一个属性即可,其他属性不会受影响。可以节省网络带宽 -
requests()方法
-
十三个访问控制参数
参数 param:字典或字节序列,作为参数增加到url中
import requests
kv = {'key1':'value1','key2':'value2'}
r = requests.request('GET','http://python123.io/ws',params = kv)
print(r.url)
https://python123.io/ws?key1=value1&key2=value2
参数 data:字典,字节序列或文件对象,作为Request的内容向服务器提交,不是像param增加到url中而是作为一个资源储存在俩对应的资源位置上。
import requests
kv = {'key1':'value1','key2':'value2'}
r = requests.request('POST','http://python123.io/ws',data = kv)
参数 json:json格式的数据,作用同上data
import requests
kv = {'key1':'value1','key2':'value2'}
r = requests.request('POST','http://python123.io/ws',json = kv)
参数 headers:字典,定制HTTP头
import requests
kv = {'user-agent':'Chrome/10'}//模拟Chrome浏览器10版本
r = requests.request('POST','http://python123.io/ws',headers= kv)
参数 cookies:字典或CookieJar,Request中的cookie
参数 auth:元组,支持HTTP认证功能
参数 file:字典类型,向服务器传输文件
import requests
kv = {'file':open(‘data.xls’,‘rb')}
r = requests.request('POST','http://python123.io/ws',headers= kv)
参数 timeout:设定超时时间,秒为单位
import requests
r = requests.request('GET','http://www.baidu.com',timeout = 10)
参数 proxies:字典类型,设定访问代理服务器,可以增加登录认证
import requests
pxs = {'http':'http://user:pass@10.10.10.1:1234','https':'https://10.10.10.1:4321'}
r = requests.request('GET','http://www.baidu.com',proxies = pxs)
参数 allow_redirects:True/False,默认为True,重定向开关
参数 stream:True/False,默认为True,获取内容立即下载开关
参数 verify:True/False,默认为True,认证SSL证书开关
参数 cert:本地SSL证书路径
- 实例一:爬取保存网页图片
import requests
import os
url = "https://i1.hdslb.com/bfs/face/85b49d96bd506c84831eca97c35534cfb696b578.jpg@68w_68h.jpg"
root = "D://picture//"
path = root + url.split('/')[-1]
try:
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
r = requests.get(url)
with open(path,'wb') as f:
f.write(r.content)
f.close()
print("文件已经保存")
else:
print("文件已经存在")
except:
print("爬取失败")