python+requests之二:登陆https网站(设置proxy+SSL证书)

1、因公司需要通过代理连接外网,故这里需要增加proxies参数 ,参考:https://blog.csdn.net/wdlnancy/article/details/87007000

2、2.1 忽略SSL证书方法

因登陆的是https网站,需要使用SSL证书,但若无证书进行连接的话,可增加verify=False方法忽略证书验证,但这样会出现如下告警:

D:\Python35\lib\site-packages\urllib3\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)

故在代码上方增加忽略安全告警的代码:

requests.packages.urllib3.disable_warnings()

2.2 请求中带上证书地址(以浏览器为客户端,解释SSL证书如何工作的参考文档https://www.wosign.com/FAQ/how_browser_check_SSL.htm

从浏览器中获取浏览器的证书地址,然后在请求体中加上证书路径,使用证书的最大问题是证书在哪儿弄?,经过探索得到解决:通过浏览器查看网页证书,然后另存为本地某路径,参考:https://jingyan.baidu.com/article/20095761903725cb0621b44f.html,但注意导出格式要选择Base64编码的选项,如保存到本地:

C:/Users/user/Downloads/github3.cer

代码修改为:

 r= requests.get(build_uri('user'),auth=('github账号','密码'),proxies=proxies,verify="C:/Users/user/Downloads/github3.cer")

则也正常执行

3、因github是需要用户登陆后才能继续进行操作的,故必须在get请求中设置auth信息,若不设置,如下方,则会报401错误:

# coding=utf-8
__author__ = 'w00*'
import requests
import json
import ssl

#忽略安全警告
requests.packages.urllib3.disable_warnings()
URL = "https://api.github.com"
proxies = {"http":"http://账号:密码@proxycn2.huawei.com:8080","https":"http://账号:密码@proxycn2.huawei.com:8080"}
context = ssl._create_unverified_context()
def build_uri(endpoint):
    return '/'.join([URL,endpoint]) #主要作用是拼接接口请求地址

def better_output(json_str):
    return json.dumps(json.loads(json_str),indent=4) #采用json里面提供方法打印出来

def request_method():
    # r = requests.get(build_uri('user'),auth=('wdlnancysw','wdlsw080705'),proxies=proxies)
    # r= requests.get(build_uri('user'),auth=('Github账号','密码'),proxies=proxies,verify=False)
    r= requests.get(build_uri('user'),proxies=proxies,verify=False)
    print (r.status_code)
    print (better_output(r.text)) #调用json更好格式输出

if __name__=='__main__':
    request_method()

 

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pythonrequests库是用来发送HTTP请求的一个非常方便的工具。通过使用requests库,我们可以发送GET和POST请求,并且可以带上参数、头部信息等等。 使用requests库发送GET请求时,可以通过params参数传递参数字典。例如,可以使用以下代码发送一个GET请求并带上参数字典: ``` import requests url = 'https://www.baidu.com/s' params = {'wd': 'python'} response = requests.get(url, params=params) ``` 使用requests库发送POST请求时,可以通过data参数传递表单数据或者通过files参数传递文件。例如,以下代码展示了如何发送一个multipart形式的POST请求并传递一个文件: ``` import requests url = 'http://httpbin.org/post' files = {'file': open('report.txt', 'rb')} response = requests.post(url, files=files) ``` 以上是关于python requests库的简介和使用示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python Requests库简明使用教程](https://blog.csdn.net/lihao21/article/details/51857385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [全网最全!Python爬虫requests库教程(附案例)](https://blog.csdn.net/maiya_yayaya/article/details/131608297)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值