Python Web应用程序在本地工作但在heroku

时间:2018-01-27 13:43:26

标签: python heroku web python-requests

我有一个调用另一个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,但我不明白它们的意思。

我知道这是网站特定的,但如果有人能帮助我理解为什么会发生这种情况,我们将非常感激。

0 个答案:

没有答案