小编写这篇文章的主要目的,是来给大家去做一个介绍,介绍的内容是python requests库,包括介绍它的一些安装方法,以及怎样才能够迅速的去进行安装。另外,还需要介绍的就是其使用方法,就具体的内容,下面小编就给大家详细解答下。
前言
记得我刚学python-requests库的时候总会有点晕,于是我做了以下关于requests库的知识点整理,方便初学者可以更好的了解requests库。如果有补充或错误,或者不懂的地方,可以评论区留言。
1、Requests介绍
Requests是Python一个很实用的HTTP客户端,完全满足如今网络爬虫的需求
urllib库和requests库功能类似,但requests库功能更多更实用
2、requests库的安装
pip命令安装(方法一)
windows操作系统:pip install requests
Mac操作系统:pip3 install requests
Linux操作系统:sodo pip install requests
源码安装(方法二)
下载requests源码http://mirrors.aliyun.com/pypi/simple/requests/
下载文件到本地之后,解压到Python安装目录,之后打开解压文
运行命令行输入python setup.py install即可安装
测试
import requests
如果没提示错误,那说明已经安装成功了!
3、requests库常用的方法
最常用的方法为get()和post()分别用于发送Get请求和Post请求
4、response对象的常用属性
5、使用requests发送get请求
不带参数的get请求
案例:爬取百度主页
带参数的get请求
案例:贴吧
获取JSON数据
案例:百度美女图片
获取二进制数据
案例:下载百度logo
5.1不带参数的get请求
#不带参数的get请求 import requests url='http://www.baidu.com' resp=requests.get(url) #设置响应的经编码格式 resp.encoding='utf-8' cookie=resp.cookies#获取请求后的cookie信息 headers=resp.headers print('响应状态码:',resp.status_code) print('请求后的cookie:',cookie) print('获取请求的网址:',resp.url) print('响应头:',headers) print('响应内容',resp.text)
----------------------------------以下为输出结果----------------------------------
''' 响应状态码:200 请求后的cookie:<RequestsCookieJar[<Cookie BDORZ=27315 for.baidu.com/>]> 获取请求的网址:http://www.baidu.com/ 响应头:{'Cache-Control':'private,no-cache,no-store,proxy-revalidate,no-transform','Connection':'keep-alive','Content-Encoding':'gzip','Content-Type':'text/html','Date':'Fri,23 Apr 2021 00:10:35 GMT','Last-Modified':'Mon,23 Jan 2017 13:28:16 GMT','Pragma':'no-cache','Server':'bfe/1.0.8.18','Set-Cookie':'BDORZ=27315;max-age=86400;domain=.baidu.com;path=/','Transfer-Encoding':'chunked'} 响应内容<!DOCTYPE html> <!--STATUS OK--><html><head><meta http-equiv=content-type......... '''
5.2带参数的get请求
5.2.1查询参数params
params,数据类型为字典
作用:对URL地址中的查询参数自动进行编码拼接
使用示例:resp=requests.get(url=baseurl,params=params,headers=headers)
#带参数的get请求 import requests url='https://tieba.baidu.com/f?' params={'kw':'大学吧','pn':'3'} headers={'User-Agent':'Mozilla/5.0(Windows NT 6.1;WOW64)'} #开始请求 html=requests.get(url=url,params=params,headers=headers).text print(html)
5.2.2 SSL证书认证参数verify
参数值:True(默认)|False
适用网站:https类型网站但是没有经过证书认证机构认证的网站
适用场景:当程序中抛出SSLError异常则考虑使用此参数
使用示例:requests.get(url=url,headers=headers,verify=False)
当verify参数设置为False时,则不会再对网站进行SSL证书认证
5.2.3设置超时时间timeout
我们可以通过timeout属性设置超时时间,一旦超过这个时间还没获得响应内容,就会提示错误。
import requests requests.get('http://github.com',timeout=0.001) ---------------------以下为输出结果(报错)--------------------- Traceback(most recent call last): File"<stdin>",line 1,in<module> requests.exceptions.Timeout:HTTPConnectionPool(host='github.com',port=80):Request timed out.(timeout=0.001)
5.2.4代理IP参数proxies
5.2.4.1免费代理IP
语法格式:proxies={'协议':'协议://IP:端口号'}
示例:
当我们抓取的地址为http时,则会选择proxies中http的代理,反之为https
import requests url='http://httpbin.org/get' headers={'User-Agent':'Mozilla/5.0'} #定义代理,再代理IP网站中查找免费代理IP proxies={ 'http':'http://112.85.164.220:9999', 'https':'https://112.85.164.220:9999' } html=requests.get(url=url,proxies=proxies,headers=headers,timeout=5).text print(html)
5.2.4.1私密代理和独享代理
语法格式:proxies={'协议':'协议://用户名:密码 IP:端口号'}
示例:
5.3获取JSON数据
#获取json数据 #案例:百度获取宫崎骏动漫图片 #滑动页面,URL没变化,F12中的文件越来越多,说明这是动态网页 #选择XHR中的一个,复制其Request URL,粘贴给url import requests url='https://image.baidu.com/search/acjson?tn=resultjson_com&logid=10167214135414424439&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%AE%AB%E5%B4%8E%E9%AA%8F%E5%8A%A8%E6%BC%AB%E5%9B%BE%E7%89%87&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=©right=&word=%E5%AE%AB%E5%B4%8E%E9%AA%8F%E5%8A%A8%E6%BC%AB%E5%9B%BE%E7%89%87&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&expermode=&force=&pn=30&rn=30&gsm=1e&1619134335166=' resp=requests.get(url) json_data=resp.json() print(json_data)
5.4获取二进制数据
一般来说,对于非文本请求,可以以字节形式访问响应正文。
#获取二进制数据 #案例:保存百度图片 import requests url='https://www.baidu.com/img/bd_logo1.png' resp=requests.get(url) #存储 with open('logo.png','wb')as file: #resp.content:把response对象转换为二进制数据 file.write(resp.content)
6、使用requests发送post请求
语法结构
requests.post(url,data=None,json=None)
参数说明
url:需要爬取的网站的网址
data:请求数据
json:json格式的数据
案例:登录小说楼
https://www.xslou.com/login.php
import requests url='https://www.xslou.com/login.php' data={'username':'18600605736','password':'57365736','action':'login'} resp=requests.post(url,data) resp.encoding='gb2312' print('响应状态码:',resp.status_code)#200 print('响应内容',resp.text)#<html>......</html>
7、使用requests的session发送请求
import requests url='https://www.xslou.com/login.php' data={'username':'18600605736','password':'57365736','action':'login'} #使用session发送请求 session=requests.session() resp=session.post(url,data=data)#使用session发送post请求 resp.encoding='gb2312' #print(resp.text)#<html>..<title>登录成功</title>....</html>
综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来更多的帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128271.html
摘要:快速开始在安装之前在支持异步的过程中,都经历了哪些比较重大的更新。踏出第一步我们将正式使用来构建一个项目,让我们踏出第一步,利用来编写一个返回字符串的服务程序。本次示例的源代码全部在上,见。 快速开始 在安装Sanic之前,让我们一起来看看Python在支持异步的过程中,都经历了哪些比较重大的更新。 首先是Python3.4版本引入了asyncio,这让Python有了支持异步IO的标...
摘要:由于是同一起进行分发和安装的,因此无需使用进行安装。首先用进行安装向发送请求输出结果我们刚刚向发出了一个请求,同时创建了一个名为的对象,之后使用内置的解码器来处理我们请求的内容。当每个请求成功后,响应内容将被添加到数据列表中。 翻译:疯狂的技术宅原文标题:HTTP Requests in Python 3原文链接:https://www.twilio.com/blog/2...本文首发...
摘要:代码如散文作为一门计算机语言来说,会有下面的特点。而则通过这些扩展库将众多的开源函数库连接在一起,是名符其实的胶水语言。下面是我们将会在后面用到的代码在线查看一步步搭建物联网系统图灵电子书版一步步搭建物联网系统 Python 代码如散文 showImg(http://designiot.phodal.com/images/python.png); 作为一门计算机语言来说,Pytho...
摘要:下一篇文章网络爬虫实战请求库安装爬虫可以简单分为几步抓取页面分析页面存储数据。相关链接官方网站官方文档中文文档安装验证安装进入命令行交互模式,导入一下包,如果没有报错,则证明安装成功。 下一篇文章:Python3网络爬虫实战---2、请求库安装:GeckoDriver、PhantomJS、Aiohttp 爬虫可以简单分为几步:抓取页面、分析页面、存储数据。 在第一步抓取页面的过程中,...
摘要:项目简介使用抓取网站信息提供一个命令行的火车票查询工具。项目由小蜗牛发布在实验楼,项目在线练习地址实现火车票查询工具,可以直接在教程中下载代码使用。命令行参数解析工具。 showImg(https://segmentfault.com/img/remote/1460000006767253);项目简介:使用 Python3 抓取 12306 网站信息提供一个命令行的火车票查询工具。通过...
阅读 912·2023-01-14 11:38
阅读 879·2023-01-14 11:04
阅读 743·2023-01-14 10:48
阅读 1998·2023-01-14 10:34
阅读 945·2023-01-14 10:24
阅读 823·2023-01-14 10:18
阅读 500·2023-01-14 10:09
阅读 573·2023-01-14 10:02