首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python请求获取403,但在移动设备上工作正常

Python请求获取403,但在移动设备上工作正常
EN

Stack Overflow用户
提问于 2022-01-14 21:52:29
回答 1查看 372关注 0票数 1

在用Python请求HTML页面时,每次我都会得到403个禁止的响应。

代码语言:javascript
运行
复制
import requests
url = 'https://shop.rewe.de/mydata/login'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
result = requests.get(url, headers=headers)

>>> result.status_code
403

例如,当我使用iOs应用程序"Rest“时,我只需发送GET与相同的域和其他设置,并得到一个200 OK响应。我不知道当我在Python中运行这个程序时,问题是什么。

编辑:这显示了在rest应用程序中的度量。在搜索协议时,我找到了h2或简单的http/2协议。我想这就是问题所在。Postman和请求库也不支持这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-15 14:44:10

我已经更改了请求会话的密码。暂时有效。我不知道多久..。

代码语言:javascript
运行
复制
url = 'https://shop.rewe.de/mydata/login'

import ssl
import requests

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
from requests.packages.urllib3.util import ssl_

CIPHERS = (
    'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:AES256-SHA'
)


class TlsAdapter(HTTPAdapter):

    def __init__(self, ssl_options=0, **kwargs):
        self.ssl_options = ssl_options
        super(TlsAdapter, self).__init__(**kwargs)

    def init_poolmanager(self, *pool_args, **pool_kwargs):
        ctx = ssl_.create_urllib3_context(ciphers=CIPHERS, cert_reqs=ssl.CERT_REQUIRED, options=self.ssl_options)
        self.poolmanager = PoolManager(*pool_args,
                                       ssl_context=ctx,
                                       **pool_kwargs)


session = requests.session()
adapter = TlsAdapter(ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1)
session.mount("https://", adapter)

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0',
}
try:
    r = session.request('GET', url, headers=headers)
    print(r)
except Exception as exception:
    print(exception)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70716926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档