requests使用代理,python实现https代理

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: