Re: [問題] 爬蟲部署到Heroku後請求失敗

看板Python作者 (atrisk)時間2年前 (2022/08/22 10:59), 編輯推噓0(001)
留言1則, 1人參與, 2年前最新討論串2/2 (看更多)
※ 引述《gene50814 (genechen)》之銘言: : 各位大大好 : 小弟有一個爬印度證交所(https://www.nseindia.com/) 網站的需求。 : 在local端寫好執行都沒問題,但部署到heroku之後連單純的requests get都沒辦法。 : 請求送出之後不是會return失敗的status code,而是會執行非常久都不會結束 : 之前在local端測試的時候是如果沒有加user-agent會發生這種問題,但部署到heroku上 : 的程式是有加的 : 想請教如果要能在heroku上正常運行可以怎麼調整? 不知道會不會是跟國家有關? hero : ku上的國家似乎只有US跟EU。會是需要調整user-agent嗎? : 請大大們指點迷津了 感謝 如gene50814所言,requests在local host只要加User-Agent就可以正常執行, 然而一旦佈署到Heroku上就會失效,等很久都得不到回應。 我在https://www.scrapingbee.com/註冊一個免費的帳號,將proxies設成該站所 提供的位址後可以成功執行,不過免費的帳號只能存取1000次,發現存取nseindia 首頁就消耗掉10次的quota,感覺不太實用。 我也很好奇大家都如何解這類問題? 以下是架在click-web framework上面的測試程式。 import click import requests, bs4 @click.group() def cli(): 'A stupid script to test click-web' pass @cli.command() def nse_india(): URL_HOME = 'https://www.nseindia.com/' YOUR_SCRAPINGBEE_API_KEY = 'copy from https://app.scrapingbee.com/dashboard' proxies = { "http": f"http://{YOUR_SCRAPINGBEE_API_KEY}:render_js=False&premium_proxy=True@proxy.scrapingbee.com:8886", "https": f"https://{YOUR_SCRAPINGBEE_API_KEY}:render_js=False&premium_proxy=True@proxy.scrapingbee.com:8887" } link_res = requests.get(URL_HOME, proxies=proxies, verify=False) click.echo(f'{link_res.text[:200]}') link_soup = bs4.BeautifulSoup(link_res.content, 'html.parser') links = link_soup.select('li') click.echo(f'links: {len(links)}') -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.165.201.152 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1661137197.A.759.html

08/24 00:34, 2年前 , 1F
把timeout卡在哪個頁面丟出來看看?
08/24 00:34, 1F
文章代碼(AID): #1Z0l4jTP (Python)
文章代碼(AID): #1Z0l4jTP (Python)