\#进程池+爬虫---------------------------------------------------
import re #导包re
from urllib.request import urlopen#导包urllib.request.urlopen
from multiprocessing import Pool#导包Pool def get\_page(url,pattern):#获得网页,读取网页
response=urlopen(url).read().decode('utf-8')#获取网页源代码并解码
return pattern ,response#将正则方法,与网页读取的结果返回给回调函数 def parse\_page(info):#解析网页,回调函数默认传进一个参数,且只能是一个
pattern,page\_content = info#拆包 将信息分开
res =re.findall(pattern,page\_content)#正则匹配所有网页
for item in res:#遍历所有列表元素给他搞成一个字典
dic={
'网址':item.strip()
}
print(dic)
if \_\_name\_\_ == '\_\_main\_\_':#windows下别写的东西 #正则应与网页相匹配
regex = r'<a href="(:?http:.*?).com'#编译前的正则表达式
pattern = re.compile(regex,re.S)#将正则表达式编译
url\_dic = {'http://maoyan.com/board/7':pattern}#字典和正则表达式配套就好像键值对一样配套,所以搞成字典
p=Pool()#创建进程池对象
res\_l=[]#搞一个列表
for url,pattern in url\_dic.items():#遍历字典
res = p.apply\_async(get\_page,args=(url,pattern),callback=parse\_page)#异步提交
res\_l.append(res)
p.close()
p.join()
for i in res\_l:
i.get()
\#进程池+爬虫---------------------------------------------------

标签: 进程, pattern, page, 爬虫, res, url, 网页

相关文章推荐

添加新评论,含*的栏目为必填