python网络爬虫(三)requests库的13个控制访问参数及简单案例
酱酱~小编又来啦~
先来回顾一下什么是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个控制访问参数及简单案例的更多相关文章
- python网络爬虫之requests库
Requests库是用Python编写的HTTP客户端.Requests库比urlopen更加方便.可以节约大量的中间处理过程,从而直接抓取网页数据.来看下具体的例子: def request_fun ...
- python网络爬虫之requests库 二
前面一篇在介绍request登录CSDN网站的时候,是采用的固定cookie的方式,也就是先通过抓包的方式得到cookie值,然后将cookie值加在发送的数据包中发送到服务器进行认证. 就好比获取如 ...
- Python网络爬虫(三)
AJAX学习 AJAX=Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).通俗来说,AJAX是一种无需加载整个网页的情况下,通过在后台与服务器 ...
- 04.Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- 06.Python网络爬虫之requests模块(2)
今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 ...
- Python网络爬虫之requests模块(2)
session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 有些时候,我们在使用爬 ...
- Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- Python网络爬虫之requests模块
今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 ...
- Python 网络爬虫的常用库汇总
爬虫的编程语言有不少,但 Python 绝对是其中的主流之一.下面就为大家介绍下 Python 在编写网络爬虫常常用到的一些库. 请求库:实现 HTTP 请求操作 urllib:一系列用于操作URL的 ...
随机推荐
- PHP——常量
一.什么是常量 常量可以理解为值不变的量(如圆周率)或者是常量值被定义后,在脚本的其他任何地方都不可以被改变.PHP中的常量分为自定义常量和系统常量,自定义常量是根据我们开发的需要,而定义的常量,它通 ...
- 如何取消chrome的自动翻译
设置中搜索“翻译” 然后关掉“询问是否翻译非您所用语言的网页”的选项即可 需要翻译的时候在目标网页右键“翻译成中文”即可 用github的时候烦的要死,翻译的贼不准.
- GitHub Top 微信小程序——在家中憋了几天写点代码吧
GitHub Top 本项目为 GitHub 热点项目微信小程序客户端,首页仅推荐一个热点项目,这个项目往往是社会热门事件所催生的一个项目,如 996.ICU.wuhan2020,所推荐项目标准为:积 ...
- Zabbix添加SNMP自定义监控项OID出现“No Such Instance currently exists at this OID”
原因:zabbix 是用snmpget来获取指定的OID数据,snmpwalk是遍历某个OID下的数据. 所以一定要用snmpget来验证某个OID是否正确. snmptranslate 获取的OID ...
- springBoot 整合 dubbo 遇到的坑
一.注意springBoot 和 dubbo 之间版本的问题 <?xml version="1.0" encoding="UTF-8"?> < ...
- Maven 项目无法在Ecplise加进tomcat server
当把用Maven项目 加进 tomcat server 时,出现 "There are no resources that can be added or removed from the ...
- java线程池及创建多少线程合适
java线程池 1.以下是ThreadPoolExecutor参数完备构造方法: public ThreadPoolExecutor(int corePoolSize,int maximumPoolS ...
- 通信协议之Modbus协议(一)
Modbus通信协议: 简介:Modbus协议是应用于电子控制器上的一种通用语言 通过此协议,控制器相互之间,控制器经由网络(例如以太网) 和其他设备之间可以通信,他已经成为一种通用工业标准,有啦它 ...
- Python多重继承之菱形继承
继承是面向对象编程的一个重要的方式,通过继承,子类就可以扩展父类的功能.在python中一个类能继承自不止一个父类,这叫做python的多重继承(Multiple Inheritance ). 语法 ...
- Spring 依赖注入原理
所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中.当spring容器启动后,spring容器初始化,创建并管理bean对象,以及销毁它.所以我们只需从容器直接获取Bean对象就行, ...