有無高手師兄可以幫忙 : Max retries exceeded with url

大家好, 最近用寫左個bot, 宜家有d connection issue 問題想問下高手, 坊間真係搵唔到答案:
以下係我個bot 的code:
  1. def papa_BT_scan(context: telegram.ext.CallbackContext):
  2.     ws_nonFG_bot_web_scraping.papa_bt_scan(context)

  3. #Server Start
  4. #===========================================================
  5. def server_start(update: telegram.Update, context: telegram.ext.CallbackContext):
  6.     print("Telegram_bot_nonFG Started.")
  7.     context.bot.send_message(chat_id=update.message.chat_id,text=':)')
  8.     context.job_queue.run_daily(papa_BT_scan,datetime.time(hour=18, minute=00, tzinfo=pytz.timezone('Asia/Hong_Kong')),context=update.message.chat_id)
  9.    

  10. if __name__ == "__main__":

  11.     REQUEST_KWARGS = {'proxy_url': 'socks5h://127.0.0.1:9150' }
  12.     u = Updater('<myToken>', use_context=True,request_kwargs=REQUEST_KWARGS)
  13.   

  14.     start_handler = CommandHandler('s', server_start,pass_job_queue=True)
  15.     u.dispatcher.add_handler(start_handler)
  16.    
  17.     u.job_queue.start()
  18.     u.start_polling()
  19.     u.idle()
複製代碼
一開始個陣其實個bot 完全無問題行到, 但過左陣之後(1-2個鐘之後), 就會throw exception:
Error while getting Updates: urllib3 HTTPError SOCKSHTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot1924749319:<mytoken>/getUpdates (Caused by ConnectTimeoutError(<telegram.vendor.ptb_urllib3.urllib3.contrib.socks.SOCKSHTTPSConnection object at 0x116208c90>, 'Connection to api.telegram.org timed out. (connect timeout=5.0)'))
No error handlers are registered, logging exception.
Traceback (most recent call last):
  File "/Library/anaconda3/lib/python3.7/site-packages/socks.py", line 809, in connect
    negotiate(self, dest_addr, dest_port)
  File "/Library/anaconda3/lib/python3.7/site-packages/socks.py", line 444, in _negotiate_SOCKS5
    self, CONNECT, dest_addr)
  File "/Library/anaconda3/lib/python3.7/site-packages/socks.py", line 524, in _SOCKS5_request
    resp = self._readall(reader, 3)
  File "/Library/anaconda3/lib/python3.7/site-packages/socks.py", line 276, in _readall
    d = file.read(count - len(data))
  File "/Library/anaconda3/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

During handling of the above exception, another exception occurred:


我上網睇過好多同類問題都好似無答案, 暫時試過用Proxy Server / VPN(ExpressVPN) , 但問題依然存在.

好想希望各位高手巴打可以幫幫我

大家好, 最近用寫左個bot, 宜家有d connection issue 問題想問下高手, 坊間真係搵唔到答案:
以下係我個bot  ...
wood_0220 發表於 2021-8-9 14:10


你係唔係部PC 行緊好多PROGRAM  不斷抓WEBSITE, 整到個SOCKET 壞壞地, 或者你不斷CONNECT 時間太密個SERVER BAN 你.
1. 試搵一部剩機只行呢個PROGRAM (最好用WIN 7 試, 用WMWARE 裝來試都得)
2. 如果係因為CONNECT 過密被BAN 一段時間, 用SLEEP  減少CONNECT 次數

TOP

你係唔係部PC 行緊好多PROGRAM  不斷抓WEBSITE, 整到個SOCKET 壞壞地, 或者你不斷CONNECT 時間太密個SERV ...
Yucie 發表於 2021-8-9 17:05


確實係部機係專用黎web scraping, 但其實個密度都係講度1日有20個web scraping request(不同網站,不是唯一網址).
1. 我部機係Mac Mini Server, 如果突然轉到win 7 , 好似有d囷難...
2. 其實如果我係CODE 入面加d sleep 等selenium 減d GET url, 會唔會對件事有幫助?

TOP

我想問多句,一個environment 入面,可唔可以同時間開兩個或以上的telegram bot 在terminal 上運行?

TOP

確實係部機係專用黎web scraping, 但其實個密度都係講度1日有20個web scraping request(不同網站,不是唯 ...
wood_0220 發表於 2021-8-9 17:18


我窮人無MAC 實體機, 頂多用WMWARE 裝過MAC OS.
MAC 機增加CONNECTION 方法
你可以試試用呢個方法增加CONNECTION. 我MAC 機唔多熟, 睇下有無其他師兄幫到你

或者你可以一個做個LOOP 先完成一個SITE 再抓下一個SITE DATA.

其實你搵selenium抓website data 既話, 一張圖/一個object 就一個connection, 如果你同一時間爆幾個site.  connection 就自然滿載. 我唔知你熟唔熟分析website, 好似你之前問果個car 28 site問題, 你直接用python 既httplib2 library 抓data, 就只抓頁面發生一個connection. 如果你用selenium 抓data 就發生n 個connection. 所以最快最直接就先分析完個site 再進行抓data. 如果無辨法之下, 我先用selenium 抓data.

TOP

我窮人無MAC 實體機, 頂多用WMWARE 裝過MAC OS.

你可以試試用呢個方法增加CONNECTION. 我MAC 機唔多熟,  ...
Yucie 發表於 2021-8-9 20:25


明白你的意思了,thanks. 謝謝寶貴的意見

TOP

u.start_polling()
https://python-telegram-bot.read ... am.ext.updater.html

poll_interval default 係0秒,秒秒poll 蛇都死

試下
u.start_polling(poll_interval=10)

如果爭多D 都冇乜問題,可以再set 大d

TOP

本帖最後由 wood_0220 於 2021-8-11 09:12 編輯
u.start_polling()


poll_interval default 係0秒,秒秒poll 蛇都死

試下
u.start_polling(poll_interval ...
super_hkg 發表於 2021-8-9 23:24


我試左以下情況:
Test 1: u.start_polling(poll_interval=20) -> Failed with same error
Test 2: u.start_polling(poll_interval=20, timeout=20) -> Failed with same error too...

我真係做到有D想放棄, 試左好多日都係唔work .....

TOP

我試左以下情況:
Test 1: u.start_polling(poll_interval=20) -> Failed with same error
Test 2: u.star ...
wood_0220 發表於 2021-8-11 09:08


裝個WINSHARK MON 住個TRAFFIC CONNECTION
WINSHARK 下載頁
睇下背景係唔係平時已經一堆CONNECTION

P.S 你有只RUN 過呢個PROGRAM 無事, 有無同其他PROGRAM 炒車

TOP

裝個WINSHARK MON 住個TRAFFIC CONNECTION

睇下背景係唔係平時已經一堆CONNECTION

P.S 你有只RUN 過呢 ...
Yucie 發表於 2021-8-11 14:33


Thanks Yucie. 我會進一步試試你的提議方案.
BTW, 我試緊super_hkg 師兄的solution, 但我嘗試加入timeout parameters 而並是非poll_interval, 宜家觀察中, 好似暫時都無有exceptions, 好緊張....

現在使用:
u.start_polling(timeout=600)

TOP