无法为people_also_ask配置Oxylabs代理,求解决方案
如何为people_also_ask库正确配置Oxylabs代理
你的问题出在两个关键错误上:代理字符串未完成变量替换,且传递给set_proxies的参数格式不符合要求。以下是修正后的配置方案:
错误原因分析
- 未格式化代理字符串:你写的
'http://{username}:{password}@{proxy}'只是字面字符串,没有替换实际的用户名、密码和代理地址,导致库无法识别正确的代理服务器。 - 参数格式错误:
people_also_ask.request.session.set_proxies需要接收和requests库proxies参数一致的字典格式(同时指定http和https代理),而非单个字符串。
修正后的代码
import people_also_ask import people_also_ask.request.session username = "user" password = "123456" proxy = "pr.oxylabs.io:7777" # 构建符合要求的代理字典,和requests配置保持一致 proxies = { 'http': f'http://{username}:{password}@{proxy}', 'https': f'http://{username}:{password}@{proxy}' } # 传入字典格式的代理配置 people_also_ask.request.session.set_proxies(proxies) # 禁用SSL验证(和你的requests测试代码保持一致,避免证书问题) people_also_ask.request.session.SESSION.verify = False a = people_also_ask.get_related_questions("coffee") print(a)
额外注意事项
- 确保Oxylabs的账户余额充足、代理地址和端口正确,且你的IP在Oxylabs的允许访问列表内。
- 免费代理通常稳定性差、速度慢,且容易被Google拦截,建议继续使用Oxylabs等付费代理服务。
- 如果仍然报错,可以尝试添加自定义请求头,模拟真实浏览器请求:
people_also_ask.request.session.SESSION.headers.update({ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36' })
内容的提问来源于stack exchange,提问作者Raspberry Pi
相关产品推荐
相关产品推荐

