我有一个调用另一个Web服务的Web应用程序, convert2mp3 是特定的,我使用python requests
模块来获取html响应,但是,我得到的html在我在本地和heroku上运行它。
我按以下方式构建网址:
base_url = 'http://convert2mp3.net/en/index.php'
payload = {
'p': 'call',
'url': youtube_link,
'format': 'mp3'
}
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
}
response = requests.get(base_url, params=payload, headers=headers)
然后我使用漂亮的汤搜索获得的html响应中具有特定id的iframe
。在本地运行它按预期工作,但在heroku上获得的html响应不包含iframe
。
我还比较了获得的响应标头
本地
{
'Date': 'Sat, 27 Jan 2018 13:18:36 GMT',
'Content-Type': 'text/html; charset=UTF-8',
'Transfer-Encoding': 'chunked',
'Connection': 'keep-alive',
'Last-Modified': 'Sat, 27 Jan 2018 13:18:35 GMT',
'Set-Cookie': '__cfduid=d5165dcd0d27b292871b83ec3fe1e2c911517059115; expires=Sun, 27-Jan-19 13:18:35 GMT; path=/; domain=.convert2mp3.net; HttpOnly, WSID=14390776415a6c7c2b7ee98vmlgzp6yziAAEgZBkcm0ekzF14jra3463970b7614cb8e2ba0abd1eae870598; expires=Sat, 28-Apr-2018 19:18:35 GMT; Max-Age=7884000; path=/; domain=convert2mp3.net',
'Cache-Control': 'no-cache, no-store, must-revalidate, max-age=0',
'Pragma': 'no-cache',
'Vary': 'Accept-Encoding, User-Agent',
'Content-Encoding': 'gzip',
'Server': 'cloudflare',
'CF-RAY': '3e3bffaea3c22df1-BOM',
'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'
}
的Heroku
{
'Date': 'Sat, 27 Jan 2018 13:08:28 GMT',
'Content-Type': 'text/html; charset=UTF-8',
'Transfer-Encoding': 'chunked',
'Connection': 'keep-alive',
'Last-Modified': 'Sat, 27 Jan 2018 13:08:27 GMT',
'Set-Cookie': '__cfduid=d00205adb7be018693ab849649dab79cd1517058507; expires=Sun, 27-Jan-19 13:08:27 GMT; path=/; domain=.convert2mp3.net; HttpOnly, WSID=11414627405a6c79cbb6a99An8ctaOAsolaQuv30wiReUyhYCLTIU84ca82bf822fd1f79bbe5e90f7bc3135; expires=Sat, 28-Apr-2018 19:08:27 GMT; Max-Age=7884000; path=/; domain=convert2mp3.net',
'Cache-Control': 'no-cache, no-store, must-revalidate, max-age=0',
'Pragma': 'no-cache',
'Vary': 'Accept-Encoding, User-Agent',
'Content-Encoding': 'gzip',
'Server': 'cloudflare',
'CF-RAY': '3e3bf0d89641239c-IAD',
'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'
}
我注意到 CF-RAY 在响应标头中有所不同,本地运行提供xxxBOM
,而heroku提供xxxIAD
,但我不明白它们的意思。
我知道这是网站特定的,但如果有人能帮助我理解为什么会发生这种情况,我们将非常感激。