python - URLlib3 HTTP 错误 502 : Bad Gateway

标签 python urllib3 bad-gateway

我正在尝试抓取 zk.fm 来下载音乐,但这给我带来了一些麻烦。我使用 urllib3 生成响应,但这总是会产生 Bad Gateway 错误。通过浏览器访问该网站效果非常好。

这是我的代码(带有随机的假用户代理)。我正在尝试访问“http://zk.fm/mp3/search?keywords= ”,后跟一些指示歌曲名称和艺术家的关键字,例如“http://zk.fm/mp3/search?keywords=childish+gambino+heartbeat ”。

from bs4 import BeautifulSoup
from random import choice
import urllib3 

desktop_agents = ['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
             'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
             'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
             'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14',
             'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36',
             'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36',
             'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36',
             'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36',
             'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
             'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0']
def random_headers():
    return {'User-Agent': choice(desktop_agents)}

ua = random_headers()
http = urllib3.PoolManager(10,headers=user_agent)
response = http.request('GET',"http://zk.fm/mp3/search? 
keywords=childish+gambino+heartbeat")
soup = BeautifulSoup(response.data)

有没有办法解决 502 错误,或者它超出了我的控制范围?

最佳答案

您需要启用 cookie 持久性,然后按顺序访问网站主页,然后访问搜索 URL。我(个人)建议使用 python-requests,但这取决于你。请参阅here供讨论。

我通过访问搜索页面进行了测试 - 错误 502。访问主页 - 200。访问搜索 - 200。清除 cookie 并再次访问搜索 - 502。所以问题肯定是 cookie。

关于python - URLlib3 HTTP 错误 502 : Bad Gateway,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50450622/

相关文章:

angular - 部署在 K8 集群上的 Angular 应用程序上出现 502 Bad Gateway

python - 如何将文件位置存储到条目小部件中 - Tkinter

python - 如何比较 2 "Friends"并查看他们是否在彼此的好友列表中?

python-3.x - 如何使用 urllib3.Retry?

google-compute-engine - Google Compute Engine 上多次请求后出现 502 Bad Gateway

laravel - 代客 502 网关错误

python - 通过(非 MPI)python 脚本与 MPI 二进制文件交互

python - 尝试在 Mac OS 中使用 pycharm 运行此命令 "pipenv lock "时出现 pipenv 内部错误

python-2.7 - 如何禁用 urllib3 重试警告消息?

python - 使用 urllib3 进行身份验证