from urllib import request
from multiprocessing import Pool,Manager
import functools
from http import cookiejar
import json,re#引入cookjar来放在cookie过期
cookie = cookiejar.CookieJar()
handle_cookie=request.HTTPCookieProcessor(cookie)opener = request.build_opener(handle_cookie)
#添加UA来简单防止反爬
opener.addheaders =[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0')]def write_to_file(dic):
#    将字典转换成json字符串写入文件方便调用dic_json  = json.dumps(dic,ensure_ascii=False)with open('maoyan.txt','a',encoding='utf-8') as f:f.write(dic_json+'\n')return Nonedef get_file(html):
#    创建正则表达式对象对得到的HTML进行匹配pattern =re.compile('<p class="name">[\s\S]*?title="([\s\S]*?)"[\s\S]*? ''<p class="star">([\s\S]*?)</p>[\s\S]*?<p class="releasetime">([\s\S]*?)</p>')result = re.findall(pattern,html)
#    将匹配的可迭代对象进行遍历,生成生成器传出for i in result:yield {'title':i[0],'autor':i[1].strip(),'time':i[2],}def get_html(lock,offset):
#    拼接目标URL 使用request的方法爬取信息url = 'http://maoyan.com/board/4?offset='+str(offset)req = request.Request(url)
#    判断是否成功请求网站if opener.open(req).code ==200:html = opener.open(req).read().decode()else:return Nonefor i in get_file(html):
#        通过加锁的形式来保证写入文件的准确率lock.acquire()write_to_file(i)lock.release()if __name__ == '__main__':
#    从Manage里获取lock锁 并且使用functools 对原函数增加新变量manager = Manager()lock = manager.Lock()new_get_html =functools.partial(get_html,lock)
#    使用进程池加快获取速度pool = Pool()pool.map(new_get_html,[i*10 for i in range(10)])
#关闭进程池pool.close()pool.join()

使用进程池抓取猫眼数据相关推荐

  1. python线程池抓取网页数据

    因为最近朋友实验研究需要手动复制,粘贴www.chemsrc.com网页上的数据很繁琐,大致看了一下一共有4000多页,因此想到了用爬虫来爬取数据. 有了这个想法便来考虑试试 # 如何提取单个页面的数 ...

  2. 抓取猫眼电影实时数据

    抓取猫眼电影实时数据 我又回来了,guys!最近也是看到流浪地球,飞驰人生,疯狂的外星人的票房大卖,于是就想着利用python对猫眼做一下票房的数据统计.下面就开始我的表演: 环境: python3. ...

  3. Python 抓取猫眼电影TOP100数据

    文章目录 1. 利用 requests 库和正则表达式抓取猫眼电影 TOP100 的相关内容 (1)[猫眼电影网址](https://maoyan.com/board/4?offset=0)如下,共1 ...

  4. python+requests+re匹配抓取猫眼上映电影信息

    python+requests抓取猫眼中上映电影,re正则匹配获取对应电影的排名,图片地址,片名,主演及上映时间和评分 import requests import re, json def get_ ...

  5. 00_抓取猫眼电影排行TOP100

    前言: 学习python3爬虫有一段时间了,熟悉了爬虫的一些基本原理和基本库的使用,本次就准备利用requests库和正则表达式来抓取猫眼电影排行TOP100的相关内容. 1.本次目标: 爬取猫眼电影 ...

  6. 利用requests库抓取猫眼电影排行

    文章目录 1.抓取目标 2.准备工作 3.抓取分析 4.抓取首页 5.正则提取 6.写入文件 7.整合代码 8.分页爬取 9.运行结果 10.本节代码 最近刚开始了解爬虫,学习了一下基本库的使用.跟着 ...

  7. Python实战一:抓取onenet数据

    抓取onenet数据,并通过EXCEL和动态折线图展示 一:onenet建立数据 onenet官网:https://open.iot.10086.cn/ 注册登录进入后,点击右上角控制台 进入控制台界 ...

  8. 抓取百万数据,我们深扒了风口上的OYO酒店

    声明:本文调查方法采用"增长工程学"理论框架.该调查与第三方均无任何利益关系,为增长黑盒独立完成,仅用于行业研究参考和学术交流. 大家好,我是增长黑盒团队的新成员Miao.最近,经 ...

  9. python猫眼电影分析_抓取猫眼电影

    注意:抓取内容之前一定要查看下Robots协议 1.准备工作 1>第一步,安装python,安装requests.json库. 2.抓取分析 1>接下来我们打开网页分析下猫眼电影排行榜 2 ...

最新文章

  1. Innobackupex实现mysql在线搭建master-slave主从复制
  2. PHP中file_exists()函数不支持中文文件名解决办法
  3. YL杯超级篮球赛(jzoj 1325)
  4. q7goodies事例_Java 8 Friday Goodies:java.io终于成功了!
  5. java 对象序列化 数组_序列化-将任何对象转换为j中的字节数组
  6. Linux初级入门百篇-​LVM 简介
  7. cisco思科交换机命令参考大全
  8. matlab神经网络工具箱教程,matlab神经网络能做什么
  9. JAVA经纬度互转、计算工具类
  10. 编译原理 3.28 作业
  11. 2023届双非跨保计算机经验贴(最终上岸浙软)
  12. 计算机专业怎么选择笔记本,选错一次,后悔四年!不同专业的大学生如何选笔记本电脑?...
  13. 在互联网时代,读书人如何更好的养活自己
  14. Evil.js代码杀手
  15. 麟龙指标通达信指标公式源码_通达信麟龙指标套二主图+副图指标 贴图
  16. 2020年第十七届中国研究生数学建模竞赛C题 面向康复工程的脑信号分析和判别建模
  17. 上传照片显示服务器繁忙怎么回事,解决WordPress上传图片“图像后期处理失败,可能是服务器忙或没有足够的资源”问题...
  18. d3js 实现水球图
  19. 如何使用pip安装causalml
  20. 高清媒体播放机产品分析()

热门文章

  1. 小米最新发布的“一指连”UWB技术了解下
  2. 基于YOLO目标检测及OpenCV实现的游戏代玩人工智能体(Auto Gaming Agent) [3] (更新)
  3. python坐标表示_已知经纬度坐标求两点间距离,用python表示
  4. 【前端系列教程之CSS3】04_CSS定位和浮动详解
  5. app推广有哪些方式?
  6. 陌上花开,可缓缓归矣——2016年校招总结
  7. GraphX与GraphLab、Pregel的对比
  8. 文档服务器地址如何进入,如何登陆服务器地址
  9. 黑苹果安装资源已过期 10.13,10.12
  10. android使用ContentProvider初始化sdk,初始化时机