requests使用代理,python实现https代理
在阅读这篇文章之前,你需要掌握的知识和技巧:
Python基金会
基本html
http状态代码
我们来看看这篇文章中的一些知识点:
获取方法
方法发布
标题参数,模拟用户
参数数据,提交数据
代理参数,使用代理
高级学习
安装请求库
pip安装请求
我们来看看帮助文档和请求的介绍,使用python自带的help命令。
导入请求
帮助(请求)
输出:
关于软件包请求的帮助:
名字
要求
描述
Requests HTTP库~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Requestsis是一个HTTP库,用Python写的,给人类用的。基本GET
用法:import requests r=requests . get( https://www . python . org )r . status _ code 200
Python是一种编程语言
真实的
.or post:payload=dict(key 1= value 1 ,key 2= value 2 )r=requests . post( https://http bin . org/post ,data=payload) print(r.text)
{
.表单:{key2: value2 , key1: value1},
.
}
支持其他HTTP方法-参见“requests.api”。完整文档位于。
:版权所有:(c)2017由一个强大的心锁瑞兹。
:许可证:Apache2.0,请参阅许可证了解更多详细信息。
这里,requests库是一个由python编写的对人友好的http库,并举例说明了GET和POST方法。
获取方法
好吧,我们自己测试一下。我们以百度为例。(谁让百度这么抗?)
导入请求
r=requests . get( 3359 www . Baidu . com )Print(r . status _ code)#打印返回的http代码。
Print(r.text) #打印返回结果的文本
方便,截个图给大家看看,返回的代码是200,表示请求正常拉回到网页。
看看返回的文字,不对劲,少了一些html标签,至少百度有两个字。嗯,是什么原因…,
相信有同学已经想到了,只是没有真正的模拟用户请求。如果你爬数据,不模拟用户请求,肯定会限制你。这时,你需要添加一个header参数,至少添加一个user-agent。好,那我们找个ua吧。告别百度,自己动手,丰衣足食。教你一个使用谷歌或者火狐的开发者工具的方法。
谷歌浏览器的开发者工具
打开新标签页3354,按F12——,访问百度3354,找到网络——,点击一个——,转下3354,看到ua,复制。
导入请求
headers={ User-Agent : Mozilla/5.0(Windows NT 6.1;Win64x64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/74 . 0 . 3729 . 131 Safari/537.36 }
r=requests . get( https://www . Baidu . com ,headers=headers)print(r . status _ code)print(r . text)
嗯~ ~ ~还有一点数据。往下看,现在正常了。所有的数据都有了。PS:不信我?您可以自己输出一个html文件,并在浏览器中打开它。
方法发布
只需更改到达后。
导入请求
headers={ User-Agent : Mozilla/5.0(Windows NT 6.1;Win64x64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/74 . 0 . 3729 . 131 Safari/537.36 }
r=requests . post( https://www . Baidu . com ,headers=headers)print(r . status _ code)print(r . text)
接下来试试。Post一般用于提交表单信息。这里有一个可以提交数据的url,在post下。
用自己写的界面(PS: Django写的,挺方便的)。只是复制它。看代码。数据是要发布的数据,数据参数被添加到post方法中。
导入请求
headers={ User-Agent : Mozilla/5.0(Windows NT 6.1;Win64X64)苹果WebKit/537.36 (KHTML,像壁虎)Chrome/74 . 0 . 3729 . 131 Safari/537.36 } # post的数据
data={info: biu~~~发送帖子请求 }
r=requests . post( 3358 dev . kdlapi . com/test proxy ,headers=headers,data=data) #添加一个数据参数
打印(状态代码)打印(文本)
我们来看一张截图。http代码200,正文信息说post成功,返回我自己的IP信息和post数据。
使用代理
为什么使用代理?一般网站都有封杀的限制策略。如果用自己的IP抓取,网站被屏蔽就无法访问。这时候你就不得不用代理IP来解决问题了。好吧,反正不是本地IP,是代理IP。
既然用代理,那就得先找个代理IP。PS:自己写代理服务器太麻烦了。关键是我也不会写,哈哈哈
导入请求
headers={ User-Agent : Mozilla/5.0(Windows NT 6.1;Win64X64)苹果WebKit/537.36 (KHTML,像壁虎)Chrome/74 . 0 . 3729 . 131 Safari/537.36 } # post的数据
Data={info: biu ~ ~ ~发送post请求 } #代理信息,由fast代理发起
proxy= 115 . 203 . 28 . 25:16584 proxy={ http : http://%(代理)s/ % {proxy: proxy}, https: http://%(代理)s/ % {proxy: proxy}
}
r=requests . post( 3358 dev . kdlapi . com/test proxy ,headers=headers,data=data,proxies=proxies添加代理参数
打印(状态代码)打印(文本)
通过向方法添加代理参数来使用代理IP。
高级学习
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。