资源简介
《Python爬虫-开发与项目实战》源码
代码片段和文件信息
#coding:utf-8
‘‘‘
第一种方式:使用os模块中的fork方式实现多进程
import os
if __name__ == ‘__main__‘:
print ‘current Process (%s) start ...‘%(os.getpid())
pid = os.fork()
if pid < 0:
print ‘error in fork‘
elif pid == 0:
print ‘I am child process(%s) and my parent process is (%s)‘(os.getpid()os.getppid())
else:
print ‘I(%s) created a chlid process (%s).‘(os.getpid()pid)
‘‘‘
‘‘‘
第二种方法:使用multiprocessing模块创建多进程
import os
from multiprocessing import Process
# 子进程要执行的代码
def run_proc(name):
print ‘Child process %s (%s) Running...‘ % (name os.getpid())
if __name__ == ‘__main__‘:
print ‘Parent process %s.‘ % os.getpid()
for i in range(5):
p = Process(target=run_proc args=(str(i)))
print ‘Process will start.‘
p.start()
p.join()
print ‘Process end.‘
‘‘‘
‘‘‘
multiprocessing模块提供了一个Pool类来代表进程池对象
from multiprocessing import Pool
import os time random
def run_task(name):
print ‘Task %s (pid = %s) is running...‘ % (name os.getpid())
time.sleep(random.random() * 3)
print ‘Task %s end.‘ % name
if __name__==‘__main__‘:
print ‘Current process %s.‘ % os.getpid()
p = Pool(processes=3)
for i in range(5):
p.apply_async(run_task args=(i))
print ‘Waiting for all subprocesses done...‘
p.close()
p.join()
print ‘All subprocesses done.‘
‘‘‘
‘‘‘
Queue进程间通信
from multiprocessing import Process Queue
import os time random
# 写数据进程执行的代码:
def proc_write(qurls):
print(‘Process(%s) is writing...‘ % os.getpid())
for url in urls:
q.put(url)
print(‘Put %s to queue...‘ % url)
time.sleep(random.random())
# 读数据进程执行的代码:
def proc_read(q):
print(‘Process(%s) is reading...‘ % os.getpid())
while True:
url = q.get(True)
print(‘Get %s from queue.‘ % url)
if __name__==‘__main__‘:
# 父进程创建Queue,并传给各个子进程:
q = Queue()
proc_writer1 = Process(target=proc_write args=(q[‘url_1‘ ‘url_2‘ ‘url_3‘]))
proc_writer2 = Process(target=proc_write args=(q[‘url_4‘‘url_5‘‘url_6‘]))
proc_reader = Process(target=proc_read args=(q))
# 启动子进程proc_writer,写入:
proc_writer1.start()
proc_writer2.start()
# 启动子进程proc_reader,读取:
proc_reader.start()
# 等待proc_writer结束:
proc_writer1.join()
proc_writer2.join()
# proc_reader进程里是死循环,无法等待其结束,只能强行终止:
proc_reader.terminate()
‘‘‘
‘‘‘
pipe进程间通信
import multiprocessing
import random
import timeos
def proc_send(pipeurls):
for url in urls:
print “Process(%s) send: %s“ %(os.getpid()url)
pipe.send(url)
time.sleep(random.random())
def proc_recv(pipe):
while True:
print “Process(%s) rev:%s“ %(os.getpid()pipe.recv())
time.sleep(random.random())
‘‘‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-07-13 09:08 SpiderBook-master\
文件 1059 2017-07-13 09:08 SpiderBook-master\.gitignore
目录 0 2017-07-13 09:08 SpiderBook-master\.idea\
文件 345 2017-07-13 09:08 SpiderBook-master\.idea\SpiderBook.iml
目录 0 2017-07-13 09:08 SpiderBook-master\.idea\inspectionProfiles\
文件 228 2017-07-13 09:08 SpiderBook-master\.idea\inspectionProfiles\profiles_settings.xm
文件 225 2017-07-13 09:08 SpiderBook-master\.idea\misc.xm
文件 272 2017-07-13 09:08 SpiderBook-master\.idea\modules.xm
文件 1066 2017-07-13 09:08 SpiderBook-master\.idea\workspace.xm
文件 109693 2017-07-13 09:08 SpiderBook-master\122页.png
文件 91749 2017-07-13 09:08 SpiderBook-master\123页.png
文件 73704 2017-07-13 09:08 SpiderBook-master\138页.png
文件 71151 2017-07-13 09:08 SpiderBook-master\182页.png
文件 1061 2017-07-13 09:08 SpiderBook-master\LICENSE
文件 23811 2017-07-13 09:08 SpiderBook-master\P113.jpg
文件 25725 2017-07-13 09:08 SpiderBook-master\P137.jpg
文件 26623 2017-07-13 09:08 SpiderBook-master\P145.jpg
文件 30899 2017-07-13 09:08 SpiderBook-master\P21.jpg
文件 38348 2017-07-13 09:08 SpiderBook-master\P29.jpg
文件 45205 2017-07-13 09:08 SpiderBook-master\P58.jpg
文件 711 2017-07-13 09:08 SpiderBook-master\README.md
目录 0 2017-07-13 09:08 SpiderBook-master\ch01\
文件 3054 2017-07-13 09:08 SpiderBook-master\ch01\1.4.1.py
文件 2343 2017-07-13 09:08 SpiderBook-master\ch01\1.4.2.py
文件 1138 2017-07-13 09:08 SpiderBook-master\ch01\1.4.3.py
文件 3915 2017-07-13 09:08 SpiderBook-master\ch01\1.4.4.py
文件 1580 2017-07-13 09:08 SpiderBook-master\ch01\1.5.1.py
文件 767 2017-07-13 09:08 SpiderBook-master\ch01\1.5.2.py
文件 6 2017-07-13 09:08 SpiderBook-master\ch01\ch01.md
目录 0 2017-07-13 09:08 SpiderBook-master\ch02\
文件 3931 2017-07-13 09:08 SpiderBook-master\ch02\2.1.1.html
............此处省略201个文件信息
- 上一篇:bayes分类python
- 下一篇:PythonCard
相关资源
- PythonCard
- bayes分类python
- python满分大作业 打地鼠
- Python物理建模初学者指南
- pyltp wheel python3.5 3.6
- Python自然语言处理(PDF高清书籍分享
- 基于Python自相关法时间序列的时间延
- 利用 Python 进行数据分析 中文第二版
- Problem Solving with Algorithms and DataStruct
- python计算机二级教程1-11章
- python自然语言处理中文版.pdf223593
- python的pywt库
- PTVS 2.2 VS 2013 补充工具 自动提示功能
- data-science-using-python-r
- Python for VS2012官方版
- A Byte of Python(简明Python教程)(第
- wxPython 2.8 Application Development Cookbook
- 终极自动化测试环境搭建:Selenium+E
- 基于django搭建的博客
- SHA-3 哈希摘要算法 python 源代码及官方
- sha3 python 史上最全最详细的正确实现
- Hands On Machine Learning with Python: Concept
- Python for everybody (EDX)
- Python数据分析与机器学习-贝叶斯实现
-
PyGob
ject(pygtk3)全解——超多代码 - matlab转python的教程
- Python37ForDelphi7.zip221420
- knn算法识别mnist图片-python3
- Python for Data Analysis(2nd )中文带书签
- python 截图 抓图 源码
评论
共有 条评论