又是新的一年,让我们一起来看一下刚刚过去的2018留下了哪些经典影片吧!

一、获取电影详情页链接

  1. 进入猫眼官网,按图中的顺序点击,得到2018年按评分排序的影片进入猫眼官网,按图中的顺序点击,得到2018年按评分排序的影片页面

    这样我们就得到了第一个爬虫链接:https://maoyan.com/films?showType=3&sortId=3&yearId=13
    这样的一页有30部电影,我们需要的肯定不止30部啦!
    点击第二页,可以看到链接变化为:https://maoyan.com/films?showType=3&sortId=3&yearId=13&offset=30
    多了一个参数,尝试把offset改为0就跳转到第一页,改为60就跳转到第3页,以此类推。
  2. 在这个页面的数据可满足不了我的需求,点击电影进入该电影的详情页,可以看到电影名称、电影产地、电影时长、电影评分、评分人数、票房等,我把这些都一并保存下来,放入MongoDB。

    这个页面的链接是:https://maoyan.com/films/1200486
    后面的数字是该电影对应的id,显然我们就需要拿到这个id了,在第一个页面按下F12,定位元素,就可以看到对应的超链接,我们使用BeautifulSoup解析出来即可。

    上代码:
# 访问页面
def get_page(url, headers):response = requests.get(url, headers=headers)if response.status_code == 200:return response.text# 获得每个电源详细页链接
def get_film_url(html):soup = BeautifulSoup(html, 'html.parser')film_href = soup.find_all(class_='channel-detail movie-item-title')film_url = []for href in film_href:film_url.append('https://maoyan.com' + href.select('a')[0]['href'])return film_url

二、解析电影详情页

在开发者工具中可以看到数字并没有像网页上正常显示出来,这是猫眼做了反爬虫处理

通过ctrl+f,输入font-face,可以看到一个字体文件,通过刷新发现,每次的字体文件都是不一样的

详细的反破解原理我就不多说了,网上其他文章已经解释很多了,思路基本都是保存一份文件,手动识别里面的数字,以后遇到其他文件时再进行比对,这里贴上我参考的几位大佬的链接:
破解代码用的就是这篇文章里面的:https://mp.weixin.qq.com/s/n7GG8sW3aadf8o2laC3KNg
知乎大佬的文章:https://zhuanlan.zhihu.com/p/33112359
讲一下具体步骤吧:

  1. 在开发者工具选Network,选font,F5刷新一下就出现了一个.woff文件了,双击就可以保存下来,这个文件就对应为你作为基准的字体文件,代码中用的是base.woff,可以顺便把它改成这个名字
  2. 打开百度字体编辑器,把刚才woff文件拖进去,就可以看到你看到的编码对应的数字是什么了
  3. 看破解代码:
def get_numbers(html_response):"""对猫眼的文字反爬进行破解"""cmp = re

python爬虫与数据可视化(一)—— 爬取猫眼电影(涉及爬虫反破解)相关推荐

  1. python爬虫入门练习:BeautifulSoup爬取猫眼电影TOP100排行榜,pandas保存本地excel文件

    传送门:[python爬虫入门练习]正则表达式爬取猫眼电影TOP100排行榜,openpyxl保存本地excel文件 对于上文使用的正则表达式匹配网页内容,的确是有些许麻烦,替换出现任何的差错都会导致 ...

  2. Python爬虫实战案例一:爬取猫眼电影

    背景 笔者上一篇文章<基于猫眼票房数据的可视化分析>中爬取了猫眼实时票房数据,用于展示近三年电影票房概况.由于数据中缺少导演/演员/编剧阵容等信息,所以爬取猫眼电影数据进行补充.关于爬虫的 ...

  3. 爬虫基本库request使用—爬取猫眼电影信息

    使用request库和正则表达式爬取猫眼电影信息. 1.爬取目标 猫眼电影TOP100的电影名称,时间,评分,等信息,将结果以文件存储. 2.准备工作 安装request库. 3.代码实现 1 imp ...

  4. Python爬虫应用实战案例-pyquery在爬虫中的应用,爬取猫眼电影数据

    什么是pyquery pyquery是类似于jquery的网页解析工具,让你使用jquery的风格来遍历xml文档,它使用lxml操作html的xml文档,它的语法与jquery很像,和我们之前所讲的 ...

  5. python战反爬虫:爬取猫眼电影数据 (一)(Requests, BeautifulSoup, MySQLdb,re等库)

    姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 本篇文章未涉及猫眼反爬,主要介绍爬取无反爬内容,战反爬内容请去 python战反爬虫:爬取猫眼电影数据 (二)(Requests, Be ...

  6. python战反爬虫:爬取猫眼电影数据 (二)(Requests, BeautifulSoup, MySQLdb,re等库)

    姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 本文主要介绍破解反爬,可以先去上一篇观看爬取无反爬内容 python战反爬虫:爬取猫眼电影数据 (一)(Requests, Beauti ...

  7. python战反爬虫:爬取猫眼电影数据 (一)

    非常荣幸邀请到 赛迪人工智能大赛(简称AI世青赛)全球总决赛银奖的获得者 隋顺意 小朋友为本公众号投稿,隋小朋友虽然小小年纪,但编程能力已经比大多数大学生强非常多了,欢迎大家关注,捧场. 姓名:隋顺意 ...

  8. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250

    0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...

  9. 【Python爬虫】爬取猫眼电影票房

    题记 本文旨在记录爬取猫眼电影国内票房榜单的过程,以及对脚本内字体文件反爬函数的说明. 环境 系统: Windows 10 Python版本: Python 3.7 爬取时间: 2019.3.19 难 ...

  10. (伪)Python爬取猫眼电影(反反爬虫过程中遇到的坑)

    Python爬取猫眼电影 1.打开一个猫眼电影的URL,例如本月的较火的电影<毒液:致命守护者>http://maoyan.com/films/42964 直接F12,查看审核元素,发现上 ...

最新文章

  1. AI论文中的novelty如何评价?
  2. 构建 Spring5 源码工程,开启研读Spring源码之路
  3. JSF范围教程– JSF / CDI会话范围
  4. vs2008配置winddk
  5. arcgis for android sdk下载地址,Arcgis Runtime sdk for android 授权
  6. 超强计算机病毒代码,木马编程 之超强服务... 附代码 原创.
  7. 三星sm-g7106com.android.mms,三星g7106官方原版固件rom系统刷机包_三星g7106线刷包
  8. Exploring Simple Siamese Representation Learning
  9. Bitbake基本语法
  10. 【ps功能精通】6.钢笔工具
  11. 故障:笔记本开机时自动打开 NumLock 键
  12. 用Excel进行频域分析
  13. 查找代码文件中的非 ASCII 字符
  14. 2013年各大小IT公司待遇,绝对真实,一线数据!
  15. MQTT断线重连订阅无法接收
  16. Spring的XML解析中关于DTD的路径问题-
  17. 三星 android 自定义物理按键,新机皇驾到!三星Note10将取消物理按键,网友:这造型逼死强迫症...
  18. 原码,反码,补码,傻傻分不清?
  19. 【git-02】用git管理vue项目
  20. Dotfuscator Professional Edition 4.96 版的使用教程

热门文章

  1. 详解 nginx location ~ .*\.(js|css)?$ 什么意思?
  2. vscode 高效开心开发uniapp
  3. tmpfs探索与虚拟机扩容
  4. 从工程师到管理者,角色到底发生了哪些变化?
  5. 个人博客(威博)原创项目
  6. jupyter使用技巧
  7. 【寄存器模型】二、前门访问与后门访问
  8. 开源 2D 实时水面反射效果,源码详解!
  9. sqlite配置下载安装及使用图文教程
  10. 使用原生 Canvas 播放视频