首页 > 编程语言 > 详细

python网络爬虫(三)requests库的13个控制访问参数及简单案例

时间:2020-02-28 16:01:17      阅读:193      评论:0      收藏:0      [点我收藏+]

酱酱~小编又来啦~??

先来回顾一下什么是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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!