资源简介
python爬虫项目开发实战高清pdf加源代码包含各章节的源代码,适合新手入门练习,包会
代码片段和文件信息
#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())
‘‘‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 110524328 2018-12-20 18:51 銆奝ython鐖櫕寮€鍙戜笌椤圭洰瀹炴垬銆婡www.java1234.com.pdf
目录 0 2018-12-20 19:03 __MACOSX\
文件 610 2018-12-20 18:51 __MACOSX\._銆奝ython鐖櫕寮€鍙戜笌椤圭洰瀹炴垬銆婡www.java1234.com.pdf
目录 0 2018-12-20 19:02 SpiderBook-master\
目录 0 2017-07-13 02:08 SpiderBook-master\ch07\
目录 0 2017-07-13 02:08 SpiderBook-master\ch07\SpiderNode\
文件 2062 2017-07-13 02:08 SpiderBook-master\ch07\SpiderNode\SpiderWork.py
目录 0 2018-12-20 19:03 __MACOSX\SpiderBook-master\
目录 0 2018-12-20 19:03 __MACOSX\SpiderBook-master\ch07\
目录 0 2018-12-20 19:03 __MACOSX\SpiderBook-master\ch07\SpiderNode\
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\SpiderNode\._SpiderWork.py
文件 1977 2017-07-13 02:08 SpiderBook-master\ch07\SpiderNode\HtmlParser.py
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\SpiderNode\._HtmlParser.py
文件 0 2017-07-13 02:08 SpiderBook-master\ch07\SpiderNode\__init__.py
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\SpiderNode\.___init__.py
文件 404 2017-07-13 02:08 SpiderBook-master\ch07\SpiderNode\HtmlDownloader.py
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\SpiderNode\._HtmlDownloader.py
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\._SpiderNode
目录 0 2017-07-13 02:08 SpiderBook-master\ch07\ControlNode\
文件 4216 2017-07-13 02:08 SpiderBook-master\ch07\ControlNode\NodeManager.py
目录 0 2018-12-20 19:03 __MACOSX\SpiderBook-master\ch07\ControlNode\
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\ControlNode\._NodeManager.py
文件 0 2017-07-13 02:08 SpiderBook-master\ch07\ControlNode\__init__.py
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\ControlNode\.___init__.py
文件 52988 2017-07-13 02:08 SpiderBook-master\ch07\ControlNode\old_urls.txt
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\ControlNode\._old_urls.txt
文件 1496 2017-07-13 02:08 SpiderBook-master\ch07\ControlNode\DataOutput.py
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\ControlNode\._DataOutput.py
文件 1092419 2017-07-13 02:08 SpiderBook-master\ch07\ControlNode\baike_2016_11_10_20_38_05.html
文件 212 2017-07-13 02:08 __MACOSX\SpiderBook-master\ch07\ControlNode\._baike_2016_11_10_20_38_05.html
文件 976 2017-07-13 02:08 SpiderBook-master\ch07\ControlNode\new_urls.txt
............此处省略481个文件信息
相关资源
- 2019马哥全新Python全栈+自动化+爬虫+数
- 京东商品图片爬虫
- 抓取豆瓣影评并制作词云
- Python爬取豆瓣图书信息
- python爬虫集(豆瓣电影、书籍、小组
- 技术更新,战术升级!Python爬虫案例
- python文本相似度分析
- python 网络爬虫
- Python+淘宝网商品数据分析+原代码.t
- python爬取淘宝信息并作分析
- google图片爬虫心情
- Python-Boss直聘Python招聘岗位信息爬取和
- 爬虫多维度抓取链家二手房成交数据
- python 爬取链家网信息
- python自定义爬虫之爬取豆瓣网和腾讯
- 基于python的网络爬虫设计
- Python爬虫股票评论
- Python爬取房价信息
- Python爬虫获取电子书资源实战
- 分析Ajax接口获取QS排名的Python爬虫及
- 爬虫(爬取加分析)
- 马蜂窝爬虫案例解析
- 商品搜索爬虫
- 爬虫爬取高德地图POI数据
- 爬取好大夫网.py
- 网易云课堂:21天搞定Python分布式爬虫
- Python从零基础到大牛项目实战:抓取
- Python3网络爬虫开发实战 配套源码 完
- wenjuan.py问卷网自动刷问卷程序
- python爬虫简单源码,附解释。
评论
共有 条评论