pythonrequests的用法,python requests库详解
要求是大蟒实现的简单易用的超文本传送协议库,使用起来比人人贷简洁很多
因为是第三方库,所以使用前需要煤矿管理局安装
点安装请求
安装完成后进口一下,正常则说明可以开始使用了。
基本用法:
requests.get()用于请求目标网站,类型是一个HTTPresponse类型
导入请求
响应=请求。get( http://www。百度一下。com’)
打印(响应。状态_代码)#打印状态码
打印(response.url) #打印请求全球资源定位器(统一资源定位器)
打印(response.headers打印头信息
打印(response.cookies打印甜饼干信息
print(response.text) #以文本形式打印网页源码
打印(响应.内容)#以字节流形式打印
运行结果:
状态码:200
网址:www.baidu.com
头球信息
各种请求方式:
导入请求
请求。get( http://http bin。org/get’)
请求。帖子( http://http bin。组织/职位’)
请求。put( http://http bin。org/put’)
请求。删除( http://http bin。组织/删除’)
请求。头( http://http bin。org/get’)
请求。选项( http://http bin。org/get’)
基本的得到请求
导入请求
响应=请求。get( http://http bin。org/get’)
打印(响应。文本)
结果
带参数的得到请求:
第一种直接将参数放在全球资源定位器(统一资源定位器)内
导入请求
响应=请求。获取(http://http bin。org/get?name=gemeyage=22)
打印(响应。文本)
结果
另一种先将参数填写在词典中,发起请求时参数参数指定为词典
导入请求
数据={
姓名:汤姆,
年龄:20
}
响应=请求。get( http://http bin。org/get ,params=data)
打印(响应。文本)
结果同上
解析数据
导入请求
响应=请求。get( http://http bin。org/get’)
打印(响应。文本)
打印(响应。JSON())# response。JSON()方法同json.loads(response.text)
print(type(response.json()))
结果
简单保存一个二进制文件
二进制内容为响应。内容
导入请求
响应=请求。得到( http://img。伊夫斯基。com/img/tu pian/pre/2017 08/30/kekeersitao-002。jpg’)
b=响应内容
用打开( F://fengjing.jpg , wb )作为女:
f。写(二)
为你的请求添加头信息
导入请求
heads={}
人头[用户代理]=Mozilla/5.0
(麦金塔;u;英特尔MAC OS X 10 _ 6 _ 8;美国)AppleWebKit/534.50 \
(KHTML,像壁虎一样)版本/5.1 Safari/534.50
响应=请求。get( http://www。百度一下。 com ,头=头)
使用代理
同添加头球方法,代理参数也要是一个词典
这里使用要求库爬取了互联网协议(互联网协议)代理网站的互联网协议(互联网协议)与端口和类型
因为是免费的,使用的代理地址很快就失效了。
导入请求
进口是
def get_html(url):
proxy={
http: 120.25.253.234:812 ,
https 163.125.222.244:8123
}
heads={}
heads[ User-Agent ]= Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/49。0 .2623 .221野生动物园/537.36东南2 .X MetaSr 1.0
req=requests.get(url,headers=heads,proxies=proxy)
html=req。文本
返回超文本标记语言
def get_ipport(html):
regex=r
(.) iplist=re.findall(regex,html)
regex2=
(.) portlist=re.findall(regex2,html)
regex3=r
(.) typelist=re.findall(regex3,html)
sumray=[]
对于文件中的我:
对于端口列表中的p:
对于类型列表中的t:
及格
及格
a=t , i : p
sumray.append(a)
打印(高匿代理)
打印(苏姆雷)
if __name__==__main__ :
URL= http://www。快戴笠。 com/free/
get_ipport(get_html(url))
结果:
基本邮政请求:
导入请求
data={name:tom , age:22}
响应=请求。帖子( http://http bin。组织/职位,数据=数据)
获取甜饼干
#获取甜饼干
导入请求
响应=请求。get( http://www。百度一下。com’)
打印(response.cookies)
打印(类型(response.cookies))
对于k,v in response.cookies.items():
打印(k):“v”
结果:
会话维持
导入请求
会话=请求。会话()
会话。get( http://http bin。org/cookies/set/number/12345’)
响应=会话。get( http://http bin。org/cookies’)
打印(响应。文本)
结果:
证书验证设置
导入请求
从请求.包导入urllib3
urllib3.disable_warnings() #从urllib3中消除警告
响应=请求。得到( https://www。12306 .cn ,verify=False) #证书验证设为错误的
打印(响应。状态_代码)打印结果:200
超时异常捕获
导入请求
从请求.异常导入读取超时
尝试:
RES=请求。get( http://http bin。org ,超时=0.1)
打印(资源状态代码)
除了读取超时:
打印(超时)
异常处理
在你不确定会发生什么错误时,尽量使用尝试.除.之外来捕获异常
所有的请求例外:
例外
导入请求
从请求.异常导入ReadTimeout,HTTPError,RequestException
尝试:
响应=请求。get( http://www。百度一下。 com ,超时=0.5)
打印(响应。状态_代码)
除了读取超时:
打印("超时")
除了HTTPError:
打印( httperror )
例外请求例外:
打印(请求错误)
25行代码带你爬取4399小游戏数据
导入请求
导入帕塞尔
导入战斗支援车
f=打开( 4399游戏 csv ,mode=a ,encoding=utf-8-sig ,newline= )
csv_writer=csv .DictWriter(f,fieldnames=[游戏地址, 游戏名字])
csv_writer.writeheader()
对于范围(1,106)内的页面:
URL= http://www . 4399 . com/flash _ fl/5 _ { }。 htm .格式(页面)
标题={
用户代理: Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/81。0 .4044 .138 Safari/537.36
}
response=requests.get(url=url,headers=headers)
回应。编码=响应。表观编码
选择器=parsel .选择器(响应。文本)
lis=选择器。CSS(#经典李)
李斯对李说:
dit={}
data_url=li.css(a:attr(href)).获取()
new _ URL= http://www。4399 . com data _ URL。替换( http://,/)
dit[游戏地址]=新网址
title=li.css(img:attr(alt)).获取()
dit[游戏名字]=标题
打印(新网址,标题)
csv_writer.writerow(dit)
f.close()
到此这篇关于大蟒爬虫-请求库的用法详解的文章就介绍到这了,更多相关大蟒请求库内容请搜索聚米学院以前的文章或继续浏览下面的相关文章希望大家以后多多支持聚米学院!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。