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的 ...
随机推荐
- GStreamer基础教程13 - 调试Pipeline
摘要 在很多情况下,我们需要对GStreamer创建的Pipeline进行调试,来了解其运行机制以解决所遇到的问题.为此,GStreamer提供了相应的调试机制,方便我们快速定位问题. 查看调试日志 ...
- C++ 引用分析
引用 左值引用,建立既存对象的别名 右值引用,可用于为临时对象延长生命周期 转发引用,保持函数实参的类别 悬置引用,对象生命周期已经结束的引用,访问改引用为未定义行为 值类别,左值,纯右值,亡值 st ...
- 通过示例学习rholang(上部:课程0-6)
通过例子和实践来学习rho语言.下面的例子和练习都很值得去运行.阅读.修改和完善.修改练习和教程中任何你感到有意思的代码,这样能够获得最好的学习效果.该教程包含了rho语言最常见以及最重要的特性,足以 ...
- Windos下的一些命令集合
由于在CMD模式下(也就是命令行)有较多的有用的命令.以下是自己平时所记录下来的以帮助平时的任务. 1. 显示计算机的操作系统 wmic os get osarchitecture /value
- 每天玩转3分钟 MyBatis-Plus - 6. select 用法
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...
- [总结]ACM模拟总结
1.心态一定要稳,千万不要慌. 2.内部交流要多点,说不定就讨论出有用的性质了. 3.题目细节一定要想清楚. 4.一道题绝对不能让多个人来写. 5.英语要好好学.
- nginx白名单黑名单设置
nginx白名单黑名单设置 白名单设置,访问根目录 location / { allow 123.34.22.155; allow 33.56.32.1/100; deny all; } 黑名单设置, ...
- C语言博客作业8
本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业地址 我在这个课程的目标是 熟练运用C语言来写代码 这个作业在那个具体方面帮助我实现目标 while语句的运用 参考文献 ...
- sys model 常见用法
import sys #与python解释器 交互 print(sys.argv) #是一个列表 解释器执行文件名后面可以增加字符串 以列表元素形式添加进去def foo(): print('ok') ...
- 我的一个react路由之旅(步骤及详图)
今天开始react一个重要部分的xiao~习,路由~(过程截图,最后附代码) 以下代码只能骗糊涂蛋子,没错,就是我自己,不要打算让我敲出多高级的东西~ 理论性知识几乎没有,请不要打算让我给你说原理啥的 ...