You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:使用http.client.HTTPSConnection请求/screener.ashx返回空值

解决http.client.HTTPSConnection请求/screener.ashx返回空响应的问题

出现这种情况大概率是网站的反爬机制在起作用,以下是几种可行的解决思路:

1. 补充请求头信息

很多网站会校验请求的User-Agent字段,未携带该字段的请求会被拒绝返回内容。给请求添加模拟浏览器的请求头即可:

import http.client

connection = http.client.HTTPSConnection('finviz.com', timeout=30000)
# 添加浏览器标识的请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
connection.request('GET', url='/screener.ashx', headers=headers)
response = connection.getresponse().read()
print(response)

2. 携带会话Cookie

部分网站会要求请求携带之前访问根路径时获取的Cookie,验证会话合法性。可以先请求根路径拿到Cookie,再发起/screener.ashx的请求:

import http.client

connection = http.client.HTTPSConnection('finviz.com', timeout=30000)
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

# 先请求根路径获取Cookie
connection.request('GET', url='/', headers=headers)
root_resp = connection.getresponse()
cookies = root_resp.getheader('Set-Cookie')

# 带上Cookie请求目标路径
headers['Cookie'] = cookies
connection.request('GET', url='/screener.ashx', headers=headers)
response = connection.getresponse().read()
print(response)

注意:finviz的反爬机制可能会更新,如果以上方法无效,可能需要进一步分析请求参数(比如是否需要携带特定的查询参数),或者考虑使用会话保持更完善的库来简化操作。

内容的提问来源于stack exchange,提问作者IlyaK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 13:24:26