返回顶部
首页 > 资讯 > 后端开发 > Python >requests-代理设置,超时设置,登陆验证,Prepared Requests
  • 689
分享到

requests-代理设置,超时设置,登陆验证,Prepared Requests

requestsPreparedRequests 2023-01-30 23:01:12 689人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

对于某些网站,大规模频繁请求,网站可能会弹出验证码,或者跳转到登陆认证页面,甚至可能会被直接封客户端ip,导致短时间内无法访问,这个时候就需要用到代理ip。requests是能解决这个问题的,需要用到proxies参数,示例如下:impor

对于某些网站,大规模频繁请求,网站可能会弹出验证码,或者跳转到登陆认证页面,甚至可能会被直接封客户端ip,导致短时间内无法访问,这个时候就需要用到代理ip。

requests是能解决这个问题的,需要用到proxies参数,示例如下:

import requests

proxies = {
    "Http": 'http://123.123.123.10:5566',
    "https": 'https://123.123.123.10:443',
}

requests.get("https://www.baidu.com", proxies=proxies)

上面代理地址换成有效代理地址即可



验证代理配置

import requests

proxies = {
    "http": 'http://user:passWord@123.123.123.10:5566/',
}

requests.get("https://www.baidu.com", proxies=proxies)



requests还支持socks协议的代理

需要安装socks这个库

pip3 install 'requests[socks]'


示例代码:

import requests

proxies = {
    "http": 'socks5://user:password@123.123.123.10:5566/',
    "https": 'socks5://user:password@123.123.123.10:5566/',
}

requests.get("https://www.baidu.com", proxies=proxies)



requests超时设置

在本机网络状况不好或服务器网络响应太慢甚至无法响应的时候,应该设置一个超时时间,需要用到timeout参数。

将超时时间设置为0.1秒,如果0.1秒内没有响应,就会抛出异常。

import requests
r = requests.get('https://www.alibaba.com', timeout=0.1)
print(r.status_code)

返回信息:

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.alibaba.com', port=443): Read timed out. (read timeout=0.1)


实际上,请求分为两个阶段,即连接(connect)和读取(read)。设置的timeout将作用于连接和读取这两个的timeout总和,也可以分别指定,传入一个元组:

import requests
r = requests.get('https://www.alibaba.com', timeout=(1, 1))
print(r.status_code)


如果想永久等待,可以将timeout设置为None,或者不设置直接留空,默认为None,如果服务器响应很慢,就慢慢等待,不会返回超时错误,用法如下:

import requests
r = requests.get('https://www.alibaba.com', timeout=None)
print(r.status_code)

r1 = requests.get('https://www.alibaba.com')
print(r1.status_code)



requests登陆验证(身份认证)

在访问网站时,可能会遇到认证页面,此时可以使用requests自带的身份认证功能,示例:

import requests
from requests.auth import HTTPBasicAuth
r = requests.get('http://localhost:5000', auth=HTTPBasicAuth('username', 'password'))
print(r.status_code)

# 默认使用HTTPBasicAuth这个类来认证
r1 = requests.get('http://localhost:5000', auth=('username', 'password'))
print(r1.status_code)


此外,requests还提供了其他认证方式,OAuth认证,此时需要安装oauth包

pip3 install requests_oauthlib

示例代码:

import requests
from requests_oauthlib import OAuth1

url = 'https://api.twitter.com/1.1/account/verify_credentials.JSON'
auth = OAuth1('your_app_key', 'your_app_secret', 'your_oauth_token', 'user_oauth_token_secret')
requests.get(url, auth=auth)



Prepared Requests

可以将请求表示为数据结构,其中各个参数都可以通过一个Request对象来表示,这个数据结构就叫Prepared Requests。

示例:

from requests import Request, Session

url = 'http://httpbin.org/post'
data = {
    'name': 'zhangsan',
    'age': '22',
}
headers = {
    'User-Agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}
s = Session()
req = Request('POST', url=url, data=data, headers=headers)
prepped = s.prepare_request(req)
r = s.send(prepped)
print(r.text)

返回信息:

image.png

引入了Request,用url,data,headers参数构造了一个Request对象,需要再调用Seesion的prepare_request()方法将其转换为一个Prepared Requests对象,然后用send()方法发送即可,可以看到同样达到了POST请求效果。

有了Request这个对象,就可以将请求当作独立的对象来看待,这样在进行队列调度时会非常方便。

--结束END--

本文标题: requests-代理设置,超时设置,登陆验证,Prepared Requests

本文链接: https://lsjlt.com/news/180769.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • requests-代理设置,超时设置,登陆验证,Prepared Requests
    对于某些网站,大规模频繁请求,网站可能会弹出验证码,或者跳转到登陆认证页面,甚至可能会被直接封客户端ip,导致短时间内无法访问,这个时候就需要用到代理ip。requests是能解决这个问题的,需要用到proxies参数,示例如下:impor...
    99+
    2023-01-30
    requests Prepared Requests
  • Python中怎么设置requests代理
    这期内容当中小编将会给大家带来有关Python中怎么设置requests代理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。requests设置代理import requestsproxies&n...
    99+
    2023-06-02
  • mongodb验证登陆怎么设置
    要在MongoDB中设置验证登录,需要按照以下步骤进行操作:1. 启动MongoDB时启用权限验证。通过在启动MongoDB时使用`...
    99+
    2023-08-24
    mongodb
  • redis登录验证怎么设置
    在Redis中设置登录验证,可以通过以下步骤实现: 打开Redis配置文件(redis.conf)。可以通过编辑器打开该文件,通...
    99+
    2024-03-01
    redis
  • Java设置Excel数据验证的示例代码
    数据验证是Excel 2013版本中,数据功能组下面的一个功能,在Excel2013之前的版本,包含Excel2010 Excel2007称为数据有效性。通过在excel表格中设置数...
    99+
    2024-04-02
  • vue登录页面设置验证码input框的方法
    本文实例为大家分享了vue登录页面设置验证码input框的具体代码,供大家参考,具体内容如下 1、效果 2、代码 第一步:建立子组件(举例,文件名可自己取)----代码如下 子组...
    99+
    2024-04-02
  • linux中怎么设置登录超时自动断开
    本篇文章为大家展示了linux中怎么设置登录超时自动断开,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、项目描述    用户为了增强linux系统的安全性,需要在用户操作空闲一...
    99+
    2023-06-06
  • Java中Socket设置连接超时的代码分享
    前言大家都知道Java的Socket如果连接不到指定IP和Port的主机,就会抛出IOException异常,而通常情况下,从连接到出现IOException会有一段不定的时长,就是所谓的超时时长,如果超时时长过长,在开发时会影响测试,如果...
    99+
    2023-05-31
    java socket 连接超时
  • Vue中设置登录验证拦截功能的思路详解
    目录一、解决思路二、让浏览器存储服务器返回的token三、在请求中设置访问权限四、封装登录验证Hello,你好呀,我是灰小猿,一个超会写bug的程序猿! 今天在做vue和spring...
    99+
    2024-04-02
  • Vista下以真正的管理员登陆的设置方法
    也许你会认为在安装时就为你创建了一个账户就是管理员了,其实这个管理员还是有限制的,也就是有点冒牌,不能完全体现其性能。例:UAC不在多管闲事,因UAC管的是那些不是真正的管理员而是冒牌的管理员,当删除垃圾文件时就会弹出一...
    99+
    2023-05-24
    方法 设置 管理员 Vista
  • RestTemplate设置超时时间及返回状态码非200处理
    目录1.调试postForEntity请求2.设置超时时间默认情况下使用RestTemplate如果返回结果的状态码是200的话就正常处理,否则都会抛出异常; 1.调试postFor...
    99+
    2024-04-02
  • 阿里云服务器ECS登陆账号的管理与设置
    阿里云服务器ECS是一款云服务器产品,为用户提供灵活的计算、存储和网络能力,满足不同场景的应用需求。本文将详细介绍如何管理与设置阿里云服务器ECS的登陆账号。 一、阿里云服务器ECS登陆账号的创建在阿里云上创建ECS服务器时,需要创建一个阿...
    99+
    2023-11-11
    阿里 账号 服务器
  • 通过基本设置和xp网络级别身份验证设置使xp可以远程登录win8系统
    基本设置 win8远程桌面的打开及设置 进行win8远程桌面基本设置两种打开的方法: 一:桌面->右键单击“计算机”->属性 二:桌面或metro界面下,从右边拉出工具条,点击&ldq...
    99+
    2023-06-04
    网络级别身份验证 远程登录 win8系统 登录 身份验证 xp 级别 win8
  • PHP 使用cURL 相关函数来设置代理、处理 SSL 证书
    设置代理: 如果你需要通过代理服务器访问目标网址,你可以使用以下 cURL 相关函数来设置代理: curl_setopt($ch, CURLOPT_PROXY, 'proxy.example.com:8080');:设置代理服务器的地址和端...
    99+
    2023-09-03
    php ssl 服务器
  • 如何使用vue-cli开发vue时的代理设置
    这篇文章将为大家详细讲解有关如何使用vue-cli开发vue时的代理设置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如下所示: '/goods'...
    99+
    2024-04-02
  • Win10中如何设置使用管理员权限需要验证PIN密码
    小编给大家分享一下Win10中如何设置使用管理员权限需要验证PIN密码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Win10使用PIN或密码审批管理员权限的方法!正常情况下,我们只要右键程序选择“以管理员身份运行”即可提...
    99+
    2023-06-12
  • 用阿里云服务器代理设置密码登录苹果
    本文将详细介绍如何使用阿里云服务器代理设置密码登录苹果设备。首先,我们需要了解什么是阿里云服务器代理,然后了解如何在苹果设备上设置阿里云服务器代理。最后,我们将详细介绍如何设置密码登录苹果设备。 一、什么是阿里云服务器代理?阿里云服务器代理...
    99+
    2023-11-06
    阿里 苹果 密码
  • 腾讯云服务器使用代理怎么设置密码登录
    使用代理登录可以有效地解决传统登录方式的安全性问题,因为它绕过了浏览器的安全认证机制,可以在不同的浏览器中访问目标服务器。代理服务器使用代理软件来接收来自目标服务器的请求,然后将请求转发到代理软件中。由于代理软件是加密的,因此它可以为用户提...
    99+
    2023-10-27
    腾讯 密码 服务器
  • Android设置当TextView中的文字超过TextView的容量时用省略号代替
    有时候在ListView中显示Textview时由于长度过长而导致text会隔行显示,UI上看起来就比较的不友好。 官方提供了相关的实现单行显示的方法。 只需要下边的设置: ...
    99+
    2022-06-06
    Android
  • 华为云服务器登录界面超级vps管理器在哪找到设置
    第一步:打开华为云服务器管理器 在浏览器中输入"cloud-server",点击右侧的"管理界面"选项。在弹出的"管理界面"窗口中,点击"超级vps"选项。 在"超级vps"界面中,可以看到"云主机"和"vps"两个选项。用户可以选择其中...
    99+
    2023-10-28
    华为 管理器 界面
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作