酱酱~小编又来啦~??
先来回顾一下什么是requets库吧~
Requests库是用Python编写的,基于urllib,采用Apache2 Licensed开源协议的HTTP库;相比urllib库,Requests库更加方便,
可以节约我们大量的工作,完全满足HTTP测试需求;上篇文章讲了requests库中的基本方法,方法中有很多参数,我只针对
方法对比较常用的参数进行了简单介绍,今天一起来看看所有的参数吧~
一、requests库的13个控制访问参数
1.params:形式:字典或字节序列,做为参数增加到url中
2.data:形式:字典或字节序列 或文件对象,做为Requests的内容,可反馈给服务器
3.json:形式:JSON格式的数据 做为Requests的内容,可反馈给服务器
(ps:科普JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定
的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交
换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。)
来自百度百科,更多信息请查询https://baike.baidu.com/item/JSON/2462549?fr=aladdin
4.headers:形式:字典 HTTP定制头
例如在亚马逊上是不允许python爬取信息的,我们可以将该参数改成Mozilla/5.0(切记只是用于学习,而不是商用)
kv = {"User-Agent":‘Mozilla/5.0‘} #需要将用户改为:Mozilla/5.0,亚马逊拒绝python访问
5.cookies:形式:字典或cookie Jar(从HTTP协议中解析得来)是Requests中的cookie
(ps:管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,
对CookieJar实例进行垃圾回收后cookie也将丢失。)
详情请参考https://blog.csdn.net/levon2018/article/details/80558108
6.auth:形式:元组 支持HTTP的认证功能
7.files: 形式:字典类型用于向服务器传输文件
8.timeout:形式:数字 单位是s(秒)用于设置超时时间,防止爬取时间过长,无效爬取
9.prixies:形式:字典类型 设定访问代理服务器,可以增加登录认证。(防止爬虫逆追踪)
10.allow_redirects:形式:布尔类型(True or False)默认为True 重定向开关
11.stream:布尔类型(True or False)默认为Ture 获取内容立即下载 开关
12.verify:布尔类型(True or False)默认为Ture 认证SSL证书开关
13.cert: 保存本地证书路径
酱酱重点来啦~~我为大家精心准备了五个案例 敲黑板,只是学习目的,非商业哦~~
‘‘‘1-京东爬取 import requests url1 = "https://item.jd.com/35683512021.html#crumb-wrap" try: r = requests.get(url1) r.raise_for_status() r.enconding = r.apparent_encoding print(r.text[:1000]) except: print("爬取失败") 2-亚马逊爬取 import requests url1 = ‘https://www.amazon.cn/?_encoding=UTF8&ref_=nav_logo‘ try: kv = {"User-Agent":‘Mozilla/5.0‘} #需要将用户改为:Mozilla/5.0,亚马逊拒绝python访问 r = requests.get(url1,headers = kv) r.raise_for_status() r.encoding = https://util.cnblogs.com/InsertCode.aspxr.apparent_encoding print(r.text[1000:2000]) except: print("爬取失败") 3.1-百度搜索全代码 import requests keyword = ‘Python‘#搜索python 百度的关键词接口是wd try: kv = {‘wd‘:keyword} r = requests.get(‘http://baidu.com/s‘,params=kv) print(r.request.url) r.raise_for_status() print(len(r.text)) except: print("爬取失败") 3.2-360搜索全代码360搜索全代码 import requests keyword = ‘Python‘#搜索python 360的关键词接口是q try: kv = {‘q‘:keyword} r = requests.get(‘http://so.com/s‘,params=kv) print(r.request.url) r.raise_for_status() print(len(r.text)) except: print("爬取失败") #4.1-网络图片的存取 #用到文件操作,将图片存为二进制(因为response属性中的content是响应HTTP内容的二进制文件) #存储并不是想存到哪里就存到哪里,可以先用os库查看当前python的工作目录;代码如下: import os print(os.getcwd()) #我的是:D:\python\practice\爬虫学习(一般就在python环境中) ---------------- import os print(os.getcwd()) #所以如果想存到其他盘或者路径 一定先要更改当前工作路径 os.chdir("D:/python") #进行验证 print(os.getcwd()) 更改工作目录成功 创建存储路径,并以二进制形式爬取网上图片并保存到文件中 #先进行爬取,并验证是否爬取成功 url1 = "http://image.ngchina.com.cn/2020/0213/20200213044154389.jpg" import requests r = requests.get(url = url1) print(r.status_code)#状态码为200表示爬取成功 path = "D:\\python\\123.jpg" #一定要和网上的图片格式一样 with open(path,‘wb‘)as f:#存储文件 f.write(r.content) #4.2爬取视频 和爬取图片类似 也需要查看当前工作目录,根据是否要存储在当前工作目录来决定是否更改 #在存取视频得时候只需要将想存取的位置的后缀从.jpg到.mp4即可 #还是将内容二进制保存在文件中 import os print(os.getcwd()) path = "D://python//practice//爬虫学习//123.mp4" import requests url = "http://www.ngchina.com.cn/statics/images/index_lunbo/ad_video_2.mp4" r = requests.get(url) print(r.status_code) with open(path,‘wb‘)as f: f.write(r.content) #ip地址归属的自动查询 #首先要知道想查询的网页、视频、图片的ip地址是什么 #先登录"https://site.ip138.com/www.dili360.com/"网站将想查询的url转换为ip地址 #可以通过这个网站 查询到ip地址的归属地,我们就是用计算机代替人来做, #相当于我们是模拟后台,帮助顾客知道归属地 #通过爬取"http://m.ip138.com/ip.asp?ip="+"IP地址" #并截取获取文本的后500字符就可以查询到ip归属地 import requests url = "http://m.ip138.com/ip.asp?ip=" try: r = requests.get(url+"123.57.174.224") r.raise_for_status() r.encoding = r.apparent_encoding print(r.text[-500:]) except: print("爬取失败")‘‘‘
--------------------------------------------------------分割线---------------------------------------------------------------
--------------------小编也是在学习哦,有错误或者想讨论的欢迎大家在评论区积极评论哟~---------------------------
---------------代码是我自己敲得哦,不要直接复制粘贴哦,一定动手自己试一试,才会学的更多------------------
python网络爬虫(三)requests库的13个控制访问参数及简单案例
原文:https://www.cnblogs.com/cutef-ish/p/12377156.html