1. 一个关于pythonrequests和ssl证书的问题
在面对如何使用 Python 爬虫翻墙获取全站 HTTPS 的网站,如 Facebook 等,时,一个普遍存在的问题是 Python2 不支持 SNI 功能。然而,这里有两种解决办法。
最直接的方法是关闭 SSL 验证:
这可以通过在使用 requests 库之前,添加相应的代码来实现:
同时,若想让 Python2 支持 SNI 功能,可以采取以下步骤:
首先,使用 pip 安装必要的依赖:
接着,在使用 urllib3 库(即在使用 requests 库之前),插入以下代码:
2. pythonrequests如何将第一个请求得到的cookie通过post
在 Python 中使用 requests 库进行网络请求时,若需在多个请求间共享 Cookie,可借助 requests.Session 对象实现。这样,首次请求所获取的 Cookie 将在后续请求中自动传递。以下是修改后代码示例:
首先,导入所需的 requests 库:
python
import requests
接着,创建一个 Session 对象,并通过首次请求获取 Cookie:
python
with requests.Session() as s:
s.get('http://example.com') # 替换为实际网址
r = s.post('http://example.com/submit_form', data={'key': 'value'})
在此代码中,使用 `requests.Session()` 创建会话对象 `s`。通过 `s.get()` 方法发送 GET 请求获取初始页面内容,并自动保存响应中的 Cookie。然后,通过 `s.post()` 方法发送 POST 请求,并将先前获取的 Cookie 一并传递。此过程无需显式添加 Cookie,`requests.Session` 已自动处理。
通过这种方式,首次请求得到的 Cookie 会在后续请求中自动应用,简化了代码并提高了请求间数据传递的便利性。这种方法尤其适用于需要在多个请求间共享状态或认证信息的场景。