专栏首页Python爬虫与数据分析Python 多进程程批量爬取小

Python 多进程程批量爬取小

使用python多进程跑同样的代码。

python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。

1. Process

创建进程的类:Process([group [, target [, name [, args [, kwargs]]]]]),target表示调用对象,args表示调用对象的位置参数元组。kwargs表示调用对象的字典。name为别名。group实质上不使用。 方法:is_alive() 、join([timeout])、run()、start()、terminate()。其中,Process以start()启动某个进程。

is_alive():判断该进程是否还活着

join([timeout]):主进程阻塞,等待子进程的退出, join方法要在close或terminate之后使用。

run():进程p调用start()时,自动调用run()

属性:authkey、daemon(要通过start()设置)、exitcode(进程在运行时为None、如果为–N,表示被信号N结束)、name、pid。其中daemon是父进程终止后自动终止,且自己不能产生新进程,必须在start()之前设置。

下面的demo。爬取笔趣阁小说网,只是爬了4本小说,同时启动四个线程。启动的方式有点low.为了统计时间,所以就那么写, 有什么更好的方法可以留言,欢迎指导。

使用多进程中的队列处理,实现进程间数据共享。代码应该可以直接运行
,有问题可以留言

可以参考:https://cuiqingcai.com/3335.html

本文分享自微信公众号 - Python爬虫scrapy(python_scrapy),作者:Andrew

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 gunicorn + nginx + supervisor 部署 flask 项目

    gunicorn “绿色独角兽”是一个被广泛使用的高性能的 Python WSGI UNIX HTTP 服务器,移植自Ruby 的独角兽(Unicorn )项目...

    andrew_a
  • 简单的验证码识别之---------tensorflow环境搭建

    网址:https://www.python.org/downloads/release/python-363/

    andrew_a
  • python数据处理

    在数据分析的时候,原始数据或多或少都会存在大量的不完整、不一致,等异常的数据,会严重影响到数据分析的工作。经常遇到的数据清洗大都是处理缺失数据,清除无意...

    andrew_a
  • Linux进程管理

    本文包括: 查看进程命令 ps、查看进程树命令 pstree、实时显示进程命令 top、查看后台任务命令 jobs、后台任务调至前台命令 fg、终止进程命令 k...

    Theo Tsao
  • 多进程与多线程的应用

    实例化程序A.daemon = True 说明该进程守护主进程,当主进程结束了该子进程默认会跟着结束

    小小咸鱼YwY
  • Android 进阶13:几种进程通信方式的对比总结

    不花时间打基础,你将会花更多时间解决那些不必要的问题。 RPC 是什么 RPC 即 Remote Procedure Call (远程过程调用) 是一种计算机通...

    张拭心 shixinzhang
  • Linux进程及作业管理

    版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/gon...

    魏晓蕾
  • 【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列5

    以下这些操作都是需要消耗大量CPU资源的:解析大型查询,存储过程编译或执行,空间管理和排序。

    bisal
  • python-multiprocessing-Pool进程池—-多进程

    进程池是用来创建和管理进程的一个池子,池子里面可以有很多的进程,它是进程工作的容器

    kirin
  • 反弹shell-逃逸基于execve的命令监控(上)

    本篇聊一聊 新的主题:《反弹shell-逃逸基于execve的命令监控》,打算写一个专题,预估可以写三篇,内容确实有点多,也是最近研究了一些有意思的东西,想给大...

    七夜安全博客

扫码关注云+社区

领取腾讯云代金券