2017-09-13 44 views
0

我使用Heroku來託管我的電報機器人。 機器人的目的是從網頁中檢索html並將其轉換爲pdf。從Heroku上的URL檢索HTML

成功託管它後,我試圖發送一個URL到機器人,但它凍結/停止在發送獲取請求的時刻。

代碼:

logger.info('retrieving HTML = {}'.format(url)) 
page_html = requests.get(url) 

logger.info('retrieved HTML') 
logger.info('started HTML parsing') 
soup = BeautifulSoup(page_html.text, 'html.parser') 

在Heroku的日誌,我只看到retrieving HTML = <URL>,比應用程序不顯示活動的任何跡象。

我試圖連接到使用Heroku的控制檯(從Heroku的網頁訪問)測功機(在Heroku上的應用程序本身),並輸入以下代碼:

import requests 
# url of a recepie 
url = 'https://pikabu.ru/story/pirog_quotlen__matushkaquot_5332461' 
html = requests.get(url) 

這個代碼在執行heroku控制檯也需要很長時間,並且沒有完成(沒有錯誤,沒有消息,我可以用crtl + c停止進程,執行永遠不會結束),並且我不確定可能是什麼問題。

先謝謝您,任何提示或幫助,將不勝感激。

+0

您是否可以加載此頁:https://pikabu.ru/story/pirog_quotlen__matushkaquot_5332461 – bhansa

+0

@bhansa是的,我可以打開它。只需在開頭添加「https://」 – GrimSmiler

回答

0

如果沒有看到日誌中的信息,或者無法瞭解您想要掃描的頁面的大小,我的猜測是您正在觸發Heroku的30秒超時。

the Dev Center article on timeouts

請求必須然後在測功機由你的應用程序,並 回送到路由器,在30秒內,以 避免超時的響應進行處理。

我會在運行腳本時檢查日誌(heroku logs -t -a yourAppName)並查找h12這是超時錯誤代碼。或者,如果您使用業餘愛好或以上的動態,您可以在儀表板上查看application metrics