这篇文章主要介绍了python爬虫中怎么创建任务进程,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
成都创新互联十年专注成都高端网站建设定制开发服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;成都创新互联服务内容包含成都网站建设,微信小程序定制开发,软件开发,网络营销推广,网络运营服务及企业形象设计;成都创新互联拥有众多专业的高端网站制作开发团队,资深的高端网页设计团队及经验丰富的架构师高端网站策划团队;我们始终坚持从客户的角度出发,为客户量身订造网络营销方案,解决网络营销疑问。
创建任务进程也比较简单,只有简单的四步:
1. 创建一个类似的QueueManager对象,使用QueueManager注册用于获取queue的方法名称,任务进程只能通过名称来在网络上获取queue,所以这里一定要注意服务端和任务端的名称要相同。
2. 链接服务器,端口和指令一定要与服务端相同。
3. 从网络上获取queue,并且将其本地化。
4. 从task对列中获取任务,并且把结果写入result对列。
import time from multiprocessing.managers import BaseManager # 创建类似的QueueManager class QueueManager(BaseManager): pass # 第一步:使用QueueManager注册用于获取Queue的方法名称 QueueManager.register('get_task_queue') QueueManager.register('get_result_queue') # 第二步:链接到服务器 server_addr = '127.0.0.1' print('Connect to server %s' %server_addr) # 端口和验证的口令一定要保证相同 m = QueueManager(address = (server_addr, 8001), authkey='jap'.encode('utf-8')) # 从网络连接: m.connect() # 第三步:获取queue的对象 task = m.get_task_queue() result = m.get_result_queue() # 第四部:从task队列中获取任务,并把结果写入result队列 while(not task.empty()): url = task.get(True, timeout = 5) print("run task download %s" %url) time.sleep(1) # 将结果写入result队列 result.put("%s --->success" %url) print("exit")
详细的步骤也写在里面了,当然这个任务队列,我们是可以创建多个的,每个任务进程都会完成自己的事,而不会干扰其他的任务进程,这也就让我们的url不会重复的去爬取,从而完美的实现了多个进程来爬取我们的任务。
感谢你能够认真阅读完这篇文章,希望小编分享python爬虫中怎么创建任务进程内容对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,遇到问题就找创新互联,详细的解决方法等着你来学习!