关于爬虫异步多线程的问题
資深大佬 : yuban10703 0
最近一直在研究 py 的异步……
所以想把之前整的一个 P 站收藏夹的爬虫换成异步,但是想了想,貌似收藏夹翻页的部分好像整不了异步?..
爬虫代码
(写的很乱…..
大佬有話說 (11)
最近一直在研究 py 的异步……
所以想把之前整的一个 P 站收藏夹的爬虫换成异步,但是想了想,貌似收藏夹翻页的部分好像整不了异步?..
爬虫代码
(写的很乱…..
其他的搜索结果 https://www.clericpy.top/newspaper/articles.query.html?query=asyncio&date=&start_time=&end_time=&source=&lang=ANY&order_by=ts_create&sorting=desc&limit=10&offset= 只看四星以上结果吧, 这个过滤器当初忘了写… 过几天再补
然后, asyncio 用的时候和多线程有点像, 但是又很多区别, 官方如果能设计的像 gevent 那种就好了… 不吐槽了, 大致要看的就是 Future 的思想, 然后知道 asyncio.Task 是一个已经在执行的协程任务, 如果你的数据库操作库不支持协程, 就只能丢到一个 “线程 executor” 里面做一个协程包装(也就是丢给线程, 但可以被 await)
至于你说的从上一步结果里取, 那就是个串行关联了, 因为第二步可能也要用协程, 所以就尽量别用 add_done_callback, 做好 await 就行了
多数人用协程的时候很少会开多个线程然它单独跑一个事件循环, 因为一不小心通信过程会遇到 different loop thread 之类的 runtime error, 所以用 executor 包装下更省心
没代码也说不了太多了