请教代理池问题

从proxy_pool的schedule和server日志看不出来有什么问题,可以读取到proxy的网址和端口(能打印出来),但在requests里面似乎不生效(体现为跳验证码时切换代理,依然跳验证码),也没有网络报错,代码附在后面,请各位指导一下哪里有问题,折腾两天也没成功。

平台和软件:WSL2, Python3.10, proxy_pool
WSL2已经开了mirrored模式,dnsTunneling, autoProxy也都开了(之前用NAT模式也不行)。

def get_proxy():
    return requests.get("http://127.0.0.1:5010/get/").json()

def delete_proxy(proxy):
    requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))

def get_word(word):
    proxypick = get_proxy().get("proxy")
    page = requests.get((URL + word), proxies = {"http": "http://{}".format(proxypick)})
    print(proxypick)
    soup = BeautifulSoup(page.content, "html.parser")

get_word(‘test’)
1 个赞

网站是https的吧
如果是就是requests没有配置https的代理

谢谢指点!回头再测试一下。

如果一直跳验证码,检查下代理的类型,需要使用高匿的代理,另外还有一个反爬识别率的问题,这种就要使用付费的代理,虽然仍然会被识别,但被检测到的概率更低一些。

爬WR如果不用代理,多线程也只是过一段时间会跳,我猜应该不是很严格的爬虫识别。
而且我设了每个请求都换一个代理,理论上是不是也能伪装一下?

需要使用高匿类型的代理。

果然改成https,就可以了。

1 个赞