背景

笔者上一篇文章《基于猫眼票房数据的可视化分析》中爬取了猫眼实时票房数据,用于展示近三年电影票房概况。由于数据中缺少导演/演员/编剧阵容等信息,所以爬取猫眼电影数据进行补充。关于爬虫的教学内容,网络上一搜就有很多了,这里我以个人的爬虫习惯,介绍此次过程中所用到的库和代码。流程图,如下图所示:

抓包

Ajax异步加载的网页,加载数据的URL需要通过抓包获取。一般确认是否异步加载,只需要右键打开网页源代码,如果源码文字内容与前端展示的结果不一致,则属于异步加载。这时需要按F12打开开发者工具的Network,重新刷新网页,就能看到真正的URL。如下图所示,开发者工具中红色框的URL才是真正加载数据的URL。

  • concurrent.futures库

    • 利用多核CPU提升执行速度。主要包含两个类:ThreadPoolExecutor和ProcessPoolExecutor,当执行属于IO密集型时,使用ThreadPoolExecutor开启多线程。当执行属于CPU密集型时,使用ProcessPoolExecutor开启多线程。
  • requests库

    • 用于发送网络请求。网络请求有get和post两种方式,get()可以直接获取数据,post()需要传递参数后才能获取数据。一般网站都是get方式,若需要登录后才能看到数据的网页则属于post方式。而爬虫中post()通常和session()搭配使用,session()用于保存登录后的cookie。
  • Beautifulsoup库

    • 用于解析HTML。爬虫需要懂得基本的HTML语言,通过定位不同的标签来提取数据。
  • re库

    • 正则表达式,用来检索或替换符合某个模式(规则)的文本。爬虫过程中如果遇到不能直接提取的脏数据时,一般采用re解决。re功能非常强大,而且上手不难,很多方面都可以运用它,所以掌握re也是一个必备技能。
  • redis数据库

    • 非关系型数据库,可以存储多种抽象数据类型。由于读写简单快捷,所以笔者将其当做缓存数据库,用于存储待爬取URL,再配合ThreadPoolExecutor多线程进行爬取,满足高并发需求。
  • Mysql数据库

    • 关系型数据库,用于存储最终结果。

实例

首先,确认URL是否需要抓包获取,还是可以直接手工构建。如下图所示,源码内容与前端展示是一致的,所以可以根据传递的参数内容,直接构建URL。


然后,再根据类型、区域、年代这三个参数,构建首页URL。

接着,获取每种分类的页面数量,再构建页面URL,再存到redis中。这么做的原因是猫眼页面查看数量是有限制的,通过遍历所有分类构建URL可以绕过这个限制。

然后,爬取每个页面中影片的ID,再构建详情页URL。由于多线程爬取速度很快,会导致IP暂时被限制登录,所以需要进行判断。通过while语句识别队列是否为空,来决定是否继续执行。此外,暂无评分的影片不属于考虑范围,所以剔除。

最后,爬取每条详情页URL的信息,同时也需要判断IP是否被限制。由于无票房的影片不属于考虑范围,所以剔除。将结果直接保存到Mysql中。

猫眼电影中,2011年至今,有评分有票房的影片有10746条。

结语

爬虫入门并不难,熟悉之后爬取一般网站都是非常容易的,难处在于有爬虫就会有反爬虫,主流网站都是有限制爬虫的,如何解决反爬虫机制才是难点。

福利:如果你对Python感兴趣,小编便准备了这套python学习资料

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。 二方面是可以找到适合自己的学习方案

包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python学习软件

工欲善其事,必先利其器。学习Python常用的开发软件都在这里了!

三、Python入门学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~

四、Python练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!

五、Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。这份资料也包含在内的哈~

六、Python面试资料

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

七、资料领取

上述完整版Python全套学习资料已经上传CSDN官方,需要的小伙伴可自行微信扫描下方CSDN官方认证二维码输入“领取资料”免费领取!!

Python爬虫实战案例一:爬取猫眼电影相关推荐

  1. Python爬虫实战Pro | (1) 爬取猫眼电影Top100榜单

    在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的序号,片名,主演,上映日期,评分和封面等内容. 之前在Python爬虫实战(1)中我们曾爬取 ...

  2. 爬虫实战4:爬取猫眼电影排名Top100的详细数据保存到csv文件

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 猫眼电影 完整代码 运行结果 猫眼电影 完整代码 import time import requests import re i ...

  3. Python爬虫实战案例:爬取新闻资讯

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 一个简单的Python资讯采集案例,列表页到详情页,到数据保存,保存为tx ...

  4. Python爬虫实战(一):爬取豆瓣电影top250排名

    先上代码 #coding=utf-8 import re import urllib.requestdef getHtml(url):page = urllib.request.urlopen(url ...

  5. Python爬虫实战003:爬取豆瓣电影分类排行榜

    import requests import jsonif __name__ == '__main__':url = "https://movie.douban.com/j/chart/to ...

  6. python爬取喜马拉雅_Python爬虫实战案例之爬取喜马拉雅音频数据详解

    这篇文章我们来讲一下在网站建设中,Python爬虫实战案例之爬取喜马拉雅音频数据详解.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 前言 喜马拉雅是专业的音频分享平台,汇集 ...

  7. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  8. 《python爬虫实战》:爬取贴吧上的帖子

    <python爬虫实战>:爬取贴吧上的帖子 经过前面两篇例子的练习,自己也对爬虫有了一定的经验. 由于目前还没有利用BeautifulSoup库,因此关于爬虫的难点还是正则表达式的书写. ...

  9. python爬虫实战之多线程爬取前程无忧简历

    python爬虫实战之多线程爬取前程无忧简历 import requests import re import threading import time from queue import Queu ...

  10. Python爬虫实战一之爬取糗事百科段子

    点我进入原文 另外, 中间遇到两个问题: 1. ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128) 解 ...

最新文章

  1. node.js(一)
  2. java jpcap 抓包并分析_java利用Jpcap实现抓包
  3. cross join
  4. 嵌入式系统启动流程和启动代码的作用 !
  5. jchdl - GSL Port
  6. Python爬百度图片并下载到本地实战
  7. openCV学习教程(一):Mat类的使用
  8. 高考完?入门级的开源项目带你开启编程之旅
  9. 用BlazeMeter录制JMeter测试脚本
  10. java设计模式迭代器模式_Java中的迭代器设计模式–示例教程
  11. zoj 3811 untrusted patrol
  12. 2013计算机一级考试综合试题答案,2013全国计算机等级考试试题题库及答案.doc
  13. Node.js + Consul 实现服务注册、健康检查、配置中心
  14. html特效代码是怎么实现的,html特效代码大全
  15. 大学生眼中的对方,哈哈
  16. 数据改写-数据科学导论
  17. vs2018网站浏览时显示: HTTP 403.4 - 禁止访问: 需要使用 SSL 查看该资源”错误,但是网站没有配置为使用 SSL
  18. GPS原理与接收机————GPS信号及其导航电文
  19. 黑客防线 2000~2006 NPM、PYPI、DockerHub 备份
  20. redis安装和基本数据类型

热门文章

  1. java毕业设计健身房课程预约平台(附源码、数据库)
  2. c语言删除文件remove_C语言文件的打开和关闭,C语言文件操作
  3. 深证上证上市公司最新公告监控提醒
  4. addonsmaker怎么制作_如何制作一个自定义Add-ons|物品篇
  5. 基于stm32的非接触式红外测温系统
  6. python生成whl包_python之PypI打包whl文件
  7. 今日资本总裁徐新:中华英才网CEO历经两次更迭
  8. artdialog ajax,artDialog v6 iframe 跨域请求
  9. SQL Server Management Studio备份数据库的简单操作步骤
  10. web前端字体居中_DIV中文字水准、垂直居中