用 socks5 代理无法返回正常网页内容

10 小时 31 分钟前
 biuyixia
`import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)  # 禁用警告

proxies = {
    'http': 'socks5://43.x.x.x:7002',
    'https': 'socks5://43.x.x.x:7002'
}

try:
    response = requests.get('https://www.icloud.com',
                           proxies=proxies,
                           verify=False,  # 禁用 SSL 验证
                           timeout=10)
    print("状态码:", response.status_code)
    print("响应内容:", response.text)
except Exception as e:
    print(f"请求失败: {e}")`

上面代码获取的结果是:

状态码: 200
响应内容: REMOTE_ADDR = 43.x.x.x
REMOTE_PORT = 62927
REQUEST_METHOD = GET
REQUEST_URI = /
REQUEST_TIME_FLOAT = 1766626171.5559506
REQUEST_TIME = 1766626171
HTTP_HOST = www.icloud.com
HTTP_USER-AGENT = python-requests/2.31.0
HTTP_ACCEPT-ENCODING = gzip, deflate
HTTP_ACCEPT = */*
HTTP_CONNECTION = keep-alive

有个疑问的点,为什么获取的不是网页内容,去掉代理获取的就是正常网页内容,这种代理是不是不能用? 找了好多 socks5 的都是这种,很疑惑。

703 次点击
所在节点    Web Dev
6 条回复
busier
9 小时 54 分钟前
你期望网上随便找到的 socks5 代理能用 那可太难了
MFWT
9 小时 39 分钟前
网上能找到的公开 HTTP/Socks5 早就被人玩炸了,不能用也很正常
biuyixia
9 小时 32 分钟前
@busier OK 吧,那这种就舍弃。。。哈哈
biuyixia
9 小时 31 分钟前
@MFWT 我以为我的使用方法不对呢。
Msxx
8 小时 38 分钟前
额。网上随便找的,那没事了
NewYear
3 小时 7 分钟前
如果你换成能模拟浏览器指纹的请求库,可能会好一点。

HTTP_USER-AGENT = python-requests/2.31.0

这种我网站是直接封掉的,摆明了就是不知道干什么的爬虫。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1181050

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX