看板 Python 關於我們 聯絡資訊
小弟為Python業餘愛好者,觀念可能不是很紮實,先請大大們海涵。 目前寫了一支爬新聞標題的腳本,針對不同關鍵字去新聞網站搜尋新聞,然後抓標題下來。 目前架構是共爬6個新聞網站,不同網站各有一支function去操作(假設為ABCDEF) ABCDEF各自把標題爬下來後,會各自return df 然後有一支主程式(稱為main),main會逐步執行ABCDEF,最後把ABCDEF return的df concate 起來,最後to_excel匯出。 目前這個架構遇到的問題就是程式會以ABCDEF的順序逐步執行,假設我每個新聞網站都有20個關鍵字要爬,B function要等A爬完那20個關鍵字後才會開始執行,同理C function要等A跟B都爬完那20個關鍵字後才會開始執行,導致非常耗時。 所以想問問架構可以怎麼改,讓ABCDEF同步執行,然後各自return的df,先完成的就先存到某個容器,等容器蒐集完6個df再concate並匯出? 感謝各位大大! ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.105.27 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1719981693.A.47F.html
tzouandy2818: 非同步 07/03 12:42
robert09080: thread 07/03 13:33
lycantrope: asyncio 07/03 13:50
starweixing: Asyncio+aiohttp 07/03 16:23
occlumency3: 使用Thread+Queue貌似可以達到想要的效果了 謝謝各位 07/03 22:07
max36067: 建議不要先直接包成 dataframe,用dict 合併append到li 07/16 23:15
max36067: st之後再轉就好了 07/16 23:15