爬虫入门-Requests库

前言

  • 今天是2020年2月17日,我们生活在信息时代,很多时候需要用到大量的数据,在互联网上即时刻保存着、更新着许多的数据,我们的很多数据都可以从互联网上获得,想要得到互联网上数据你可以选择人工寻找记录的方法,但是这种方法效率非常低下,这个时候爬虫便展现出了它的优势。
  • 对Python来讲,可能很多人都是通过爬虫认识的这门语言,当然Python远不止可以做爬虫,但它在爬虫这方面确实很有优势,它优秀的第三方库以及一些爬虫框架让人们用Python一只爬虫变得非常简单。今天我便来记录一个非常优秀的爬虫第三方库:requests

1. Requests库简单介绍

  • 在Ruquests库的官方文档中写道:Requests库是一个针对Python的优雅而简单的HTTP库,是为人类而构建的,它是目前公认的爬取网页最好的第三方库,它让你能用一行代码就能从网页上获得信息,让入门变得非常容易。

2. Requests库的安装

首先用管理员权限打开cmd命令行,然后直接输入

pip install requests ,即可安装成功(需要联网)

3. Requests库的主要方法

  • 在ruquests库中主要有七个主要方法,如下:
方法 作用
requests.request() 构造一个请求,它是支撑以下方法的基础方法
requests.get() 获取HTML网页的主要方法,请求获取URL位置的资源
requests.head() 获取HTML网页头信息的方法,请求获取URL位置资源的响应信息报告,即获得该资源的头部信息
requests.post() 向HTML网页提交POST请求的方法,请求向URL位置的资源后附加新的数据
requests.put() 向HTML网页提交PUT请求的方法,请求向URL位置存储一个资源,覆盖原URL位置的资源
request.patch() 向HTML网页提交局部修改请求,请求局部更新URL位置的资源,即改变该处资源的部分内容
request.delete() 向HTML网页提交删除请求,请求删除URL位置存储的资源

3.1 最常用方法-get()

上表中的几个方法是requests库中最主要的几个方法,而最长用的莫过于get()方法了,它用来构造一个向服务器请求资源的对象Requests,然后返回一个包含服务器资源的Response对象,这个Response对象包含服务器返回的所有信息,get()方法是我们用来获取想要得到的网页信息的基础,它的函数形式如下:

requests.get(url,params=None,**kwargs)

  • url : 想要获取网页页面的url链接。
  • params : url中的额外参数,字典或字节流格式,可选。
  • **kwargs : 12个控制访问的参数。

值得一提的是,get()方法和其余的几个主要方法都是通过request()方法封装的,这6个方法存在的意义即使让大家编写程序的时候更加方便而已。

3.2 Response对象的常用属性

属性 说明
status_code HTTP请求的返回状态,200代表成功
text HTTP响应的字符串形式,即url对应的页面内容
encoding 当前使用的解码方式,默认从HTTP header中猜测的响应内容编码方式
apparent_encoding 从内容中分析出的响应内容编码方式
content HTTP响应内容的二进制形式
raise_for_status() 判断服务器响应状态,如果不是200,则产生异常

3.3 Requests库主要方法解析

  • 在Requests库中有七个主要方法,其中request()方法是其它方法的基础,它们之中的参数几乎相同,下面以request()方法来介绍一个其中各个参数的相关功能。

标准形式 : requests.request(method,url,**kwargs)
注:
**kwargs的十几个相关参数在下文列举

参数名称 作用
method get()post()等几种请求方式
url 将要访问的网络页面链接
params 字典或字节序列,作为参数增加到url中
data 字典、字节序列或文件对象,作为Request的内容
json JSON格式的数据,作为Request的内容
headers 字典,HTTP定制头
cookies 字典或CookieJar,Request中的cookie
auth 元组,支持HTTP认证功能
files 字典类型,传输文件
timeout 设定超时时间,以秒为单位
proxies 字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects True/False,默认为True,重定向开关
stream True/False,默认为True,获取内容立即下载开关
verify Ture/False,默认为True,认证SSL证书开关
cert 本地SSL证书路径
  • 以上各个参数除url外均为可选参数,初级阶段用的比较多的有paramsheaderstimeout、等等,其余的大多为高级参数,刚开始用的比较少。
    另外几种请求方式中的参数几乎都与request函数参数相同,掌握各个参数作用之后要掌握好各主要方法的作用。
3.4.1 参数使用示例
>>>	import requests
	#params参数
>>>	kv	=	{'C':'CHANG','K':'KANG','N':'NING'}
>>>	response = requests.request('GET','https://www.baidu.com/',params=kv)
>>>	print(response.url)
https://www.baidu.com/?C=CHANG&K=KANG&N=NING
	#data参数
>>>	kv	=	{'C':'CHANG','K':'KANG','N':'NING'}
>>>	response = requests.request('POST','https://www.baidu.com/',data=kv)
>>> name = 'changkangning'
>>> response = requests.request('POST','https://www.baidu.com/',data=name)
	#json参数
>>>	kv = {'C':'CHANG','K':'KANG','N':'NING'}
>>>	response = requests.request('POST','https://www.baidu.com/',json=kv)
	#headers参数
>>>	headers = {'user-agent':'Chrome/10'}
>>> response = requests.request('POST','https://www.baidu.com/',headers=headers)
	#files参数
>>>	files = {'file':open('0218.text','rb')}
>>> response = requests.request('POST','https://www.baidu.com/',files=files)
	#proxies参数
>>>	proxies = {'http':'http://user:[email protected]:1234'
			'https':'https://10.10.10.1:4321'}
>>>	response = requests.request('GET','https://www.baidu.com/',proxies=proxies)
  • 以上简单列举了几个参数的使用方法,具体怎么掌握,会得到什么样的结果,还需要自己多练习实验一下。
发布了11 篇原创文章 · 获赞 29 · 访问量 2160

猜你喜欢

转载自blog.csdn.net/weixin_45634606/article/details/104356673