作者occlumency3 (锁心术)
看板Python
标题[问题] 爬虫程式架构问题
时间Wed Jul 3 12:41:31 2024
小弟为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://webptt.com/cn.aspx?n=bbs/Python/M.1719981693.A.47F.html
1F:→ tzouandy2818: 非同步 07/03 12:42
2F:→ robert09080: thread 07/03 13:33
3F:→ lycantrope: asyncio 07/03 13:50
4F:推 starweixing: Asyncio+aiohttp 07/03 16:23
5F:→ occlumency3: 使用Thread+Queue貌似可以达到想要的效果了 谢谢各位 07/03 22:07
6F:→ max36067: 建议不要先直接包成 dataframe,用dict 合并append到li 07/16 23:15
7F:→ max36067: st之後再转就好了 07/16 23:15