爬虫实战(一)猫眼电影基础数据爬取

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

看完爬虫基础,是不是有点心动手痒了呢?那么接下来就让我们一起学习如何爬虫吧。

写在爬虫之前

选这个题目的初衷:本人是一个学生党,经济来源较少但平时又特别爱看电影,又没时间关注电影票价的变动,有了这个爬虫之后,这将会极大的缓解我的苦恼。

爬取网页的说明:我们选择美团旗下的猫眼电影页面进行爬取,但不得不承认美团网站页面的反爬虫机制还是很厉害的。所以,我们将目标锁定在了它的客户端页面。

页面地址:http://m.maoyan.com/imeituan/

开始写代码

按照我们之前学的基础,我们可以大致的整理出如下代码:

import requests

res = requests.get('http://m.maoyan.com/imeituan/').text
print(res)

我们遇到了如下的错误:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="shortcut icon" href="http://ms0.meituan.com/braavos/static/logo.png">
<title>猫眼访问控制</title>
<style>...</style>
</head>
<body>
  <header>
    <!-- <h1>MaoYan Access Control System</h1> -->
    <h3>
      <p>很抱歉,您的访问被禁止了</p>
      <p>如果您认为我们出错了,请联系我们 <a href="mailto:oceanus.feedback@maoyan.com">oceanus.feedback@maoyan.com</a></p>
    </h3>
  </header>
  <footer>
    <a href="https://maoyan.com">猫眼电影</a>
  </footer>
</body>
</html>

这是什么意思呢,就是说我们写的代码太Low了,别人已经知道我们会用这样的方法爬取它的数据。好在我们还有些经验,试着将我们的爬虫伪装成一个浏览器,于是在get()方法里加入header参数,参数里面会包含浏览器的版本信息,如下所示。

import requests

header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
}
res = requests.get('http://m.maoyan.com/imeituan/',headers=header).text
print(res)

我们发现爬取成功了!页面部分结果如下所示:

<!DOCTYPE html>
<html class=" unknow">
<head>
  ...
  <title>电影</title>
</head>

<body body-id='c_dmLad' class="">
<header class="navbar">...</header>

<div class="hotList">
  <div class="hotHeader">
    <a href="/imeituan/hot?_v_=yes" data-bid="b_q1Dwc"><p class="more more-weak">查看全部</p></a>
    <p class="title">热映影片</p>
  </div>
  <div class="hotContent">
    <div class="item">
      <a href="/imeituan/movie/341195?_v_=yes" data-bid="b_RndzV" data-lab="{ movie_id:341195 }">
        <img data-src="//p1.meituan.net/w.h/movie/b9395cd202a461303cf06cea89292071556090.png" alt="正义联盟"/>
        <p class="movieName">正义联盟</p>
        <p class="movieScore">8.6分</p>
      </a>
    </div>
    <div class="item">...</div>
    ...
  </div>
</div>

<div id = "filter">...</div>
<script type="text/javascript">...</script>
<footer class="footer">...</footer>
  </div>
</body>
</html>

这输出的结果对于我们来说是一个好消息,因为我们得到了电影的信息。但页面里却没有关于票价的信息,我们观察了一下页面数据,发现电影数据下面有每部电影的链接地址
"/imeituan/movie/341195?_v_=yes"。
经验告诉我们只需要如下地址:
"/imeituan/movie/341195"
确切的说完整的是如下地址:
"http://m.maoyan.com/imeituan/movie/341195"。
也就是说我们还要进行字符串的截取和拼接,如果忘了,请回顾一下我们之前学的python第7章字符串的内容。

import requests

header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
}
res = requests.get('http://m.maoyan.com/imeituan/movie/341195',headers=header).text
print(res)

上述代码是我们对电影“正义联盟”的页面进行的爬取测试,结果如下:

"D:\Program Files\Anaconda2\envs\py3\python.exe" C:/Users/SCALE/Desktop/bilibili-user-wen/test.py
<!DOCTYPE html>
<html class=" unknow">
<head>
  ...
  <title>正义联盟</title>
  <script type="text/javascript">...</script>
</head>

<body body-id='c_76cEz' class="">
...
<header class="navbar">...</header>

<div class="movieInfo">
  <img class="movieAlbum" src="//p1.meituan.net/220.300/movie/b9395cd202a461303cf06cea89292071556090.png" alt="正义联盟">
  <div class="movieContent">
<p class="movieName">正义联盟</p><p class="movieEName">Justice League</p>    
<div class="movieScore">
      <p class="starWrapper">
        <span class="starBg">...</span>
        <span class="starOut" style="width:86%">...</span>
      </p>
      <p class="scoreNum">8.6</p>
    </div>
    <p class="movieNum">(114171人评分)</p>
    <p class="movieCat">动作,冒险,科幻
      <span class="movieTag">IMAX 3D</span>
    </p>
    <p class="movieSrc">美国 / 120分钟</p>
<p class="moviePubDesc">2017-11-17大陆上映</p>  </div>
</div>

<div class="movieDate">
  ...
</div>

<div id = "filter">
  ...
</div>

<footer class="footer">
    <div class="footer-links">友情链接:<a class="theme-color" href="//m.maoyan.com">猫眼电影</a></div>
    <div class="footer-line footer-copyright">
        <div class="hr"></div>
        <span class="footer-copyright-text">©2017 美团网 <a href="http://www.miibeian.gov.cn/" target="_blank">京ICP证070791号</a></span>
    </div>
</footer>
  </div>
</body>
</html>

小结

我们发现页面中,也是不存在票价信息的,那么这些信息是哪里来的呢?我只能告诉你这是动态加载的。如何实现动态数据的爬取呢,或许我们要留到下次再讲了。

【爬虫学习】实战篇1:猫眼电影票房爬虫 使用python自带的urllib库编写一个小程序,我们只需启动小程序,就可以实时爬取猫眼的电影票房数据,并自动将数据生成一个excel保存至本地文件夹。接下来,我将尽可能详细地介绍爬虫编写的步骤,希望大家可以跟着我一步步操作,全部编写完成之后,我们可以展开想象的翅膀,触类旁通,使用相同的技巧去获取自己需要的公开数据吧! 阅读详情

相关推荐

Python中的爬虫实战:猫眼电影爬虫

通过发送网络请求、解析HTML代码、保存数据等步骤,我们可以轻松地获取到目标电影相关数据,并将其存储到本地。Requests是Python HTTP库,可以轻松发送网页请求,而BeautifulSoup是Python的HTML解析库,可以快速解析HTML页面。将获取到的HTML代码转化为BeautifulSoup对象,使用BeautifulSoup库解析HTML代码,获取目标数据。猫眼电影作为国内领先的电影数据平台,为用户提供了全面的电影信息服务。打开猫眼电影网站,找到目标电影的链接,并将其复制下来。

tbprice的博客 2221

【python】猫眼爬虫Top100电影信息

最近做了猫眼爬虫和数据分析,收获很多,记录在此。爬虫和数据分析是两个模块,可以参考目录: 目录 一、猫眼爬虫 1. 猫眼爬虫第一步——找到我们需要的数据 2. 猫眼爬虫第二步——获取数据 3. 猫眼爬虫第三步——解析数据 4. 猫眼爬虫第四步——存储文件 数据分析是第二块,以后有空了再更新。 一、猫眼爬虫 1. 猫眼爬虫第一步——找到我们需要的数据 打开网站猫眼验证中心:https://www.maoyan.com/board/4, 就是我们想要.

qq_44665162的博客 5874

【Python爬虫】猫眼电影榜单Top100

Python爬虫大作业,本文是根据实验报告修改,内容与实验报告基本一致。【作业2020年11月20号前提交,本文于21号开放】 一、目标 爬取猫眼电影榜单Top100,将数据存入Excel文件中,并利用pyecharts库进行数据可视化得到.html文件和.png文件。 二、内容 主要包括四个阶段:爬取网页全部数据、获取数据并进行处理、数据存储、数据可视化。 1、 爬取网页全部数据 通过requests.get()获得页面数据,使用etree.HTML()将字符串数据转变成_Element对象,并存储在.

weixin_43983431的博客 1万+

记录爬取《猫眼电影》-影名-作者-上映时间代码

【代码】记录爬取《猫眼电影》-影名-作者-上映时间代码。

qwy715229258163的博客 808

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

又是新的一年,让我们一起来看一下刚刚过去的2018留下了哪些经典影片吧! 一、获取电影详情页链接 进入猫眼官网,按图中的顺序点击,得到2018年按评分排序的影片进入猫眼官网,按图中的顺序点击,得到2018年按评分排序的影片页面 这样我们就得到了第一个爬虫链接:https://maoyan.com/films?showType=3&amp;amp;amp;sortId=3&amp;amp;amp;yearId=13 这样的一...

qq_37838568的博客 8338

【爬虫实战】python入门爬取猫眼电影排行

应用场景:1、抓取特定网站或应用的内容,提取出有价值的信息。2、模拟用户在浏览器或应用中的操作,实现自动化流程。爬虫是什么专业术语:网络爬虫(又称网页蜘蛛、网络机器人)网络爬虫是一种自动按照特定规则抓取网页信息的程序或脚本。爬虫起源随着网络的迅猛发展,万维网成为海量信息的载体,如何有效地提取和利用这些信息成为一项巨大挑战。搜索引擎如Yahoo、Google、百度等,作为帮助人们检索信息的工具,成为用户访问万维网的入口和指南。

GR001009的博客 1749

猫眼电影爬虫和数据分析

由于疫情关系,宅在家里。记录一下作业,猫眼电影爬虫及分析,爬取猫眼电影数据,并对爬取的数据进行分析和展示。 猫眼电影爬虫 基于requests库和lxml库进去猫眼电影TOP100榜电影爬取,爬取地址为:https://maoyan.com/board/4 爬取的信息有:电影名字,主演名字,上映时间以及地点,猫眼评分得分,电影类型,电影时长。 电影数据保存为.csv格式。表头:电影名字(title),主演名字(author),上映时间以及地点(pub_time),猫眼评分得分(star),电影类型(styl

Xechos 1万+

Scrapy爬虫实战:抓取猫眼电影排行榜数据

近年来,Python成为了最受欢迎的编程语言之一,其中,Scrapy是一个基于Python的强大的爬虫框架,其应用范围广泛,尤其在数据抓取领域受到了大家的关注。在上面的代码中,我们使用了Python内部的csv模块将数据写入到一个名为maoyan_top100_movies.csv的文件中。Spider的parse方法接收来自response的内容,然后通过XPath路径抽取了每个电影的名称、主演、上映时间、电影海报链接和评分五项数据,保存到MaoyanItem中。当数据被解析后,我们需要将其存储起来。

apiok的博客 2769

【Python爬虫五十个小案例】爬取猫眼电影Top100

通过本篇博客,我们展示了如何使用Python爬虫技术抓取猫眼电影Top100的数据,并进行简单的数据清洗与分析。除了数据抓取和分析,我们还学习了如何应对反爬虫机制。通过这些知识,我们可以很好的进行后续的数据分析,或者可以查看自己喜欢哪个电影,当然本节主要还是为了练手,为了后续我们进行其他项目任务Python爬虫五十个小案例:https://blog.youkuaiyun.com/null18/category_12840403.html?

null18的博客 6890

python爬虫实战——猫眼电影案例

python爬虫实战——猫眼电影案例 AJ-Gordon,数据分析师一枚,对爬虫,机器学习,数据可视化,数据建模均有所涉猎。 ·背景   笔者上一篇文章《基于猫眼票房数据的可视化分析》中爬取了猫眼实时票房数据,用于展示近三年电影票房概况。由于数据中缺少导演/演员/编剧阵容等信息,所以爬取猫眼电影数据进行补充。关于爬虫的教学内容,网络上一搜就有很多了,这里我以个人的爬虫习惯,介绍此次过程中所用到的库...

guoxulong1的博客 5118

用BeautifulSoup爬取猫眼榜单Top100电影

用BeautifulSoup爬取猫眼榜单Top100电影BeautifulSoup准备工作抓取分析编程代码:获取页面解析网页写入文件代码整合分页爬取完整代码: BeautifulSoup 最近再学习崔庆才的网络爬虫,之前看到用正则表达式爬取了猫眼Top100的电影,第一次爬取成功的时候还是蛮兴奋的。之后学习了BeautifulSoup,觉得可以试着用BeautifulSoup来编写爬取Top100...

小白学程序 3521

Python爬虫从入门到精通——爬虫实战:爬取猫眼电影排行Top100

本文为实战篇,需提前学习[《Python爬虫从入门到精通》基本库requests的使用和正则表达式的内容。我们需要抓取的目标为猫眼电影-榜单-TOP100榜,其地址为:[https://maoyan.com/board/4](https://maoyan.com/board/4)。我们希望爬取各个电影的排名、名称、主演、上映时间、上映地区等信息。最后保存为一张Excel表格。

冯·诺依曼 4万+

网络爬虫丨基于requests+mysql爬取猫眼热门电影数据做可视化分析

本期内容:基于requests+mysql爬取猫眼热门电影数据做可视化分析。

AIGC 2万+

python爬虫基础案例——爬取猫眼电影并保存数据到excel

好久没更新博文了,最近忙于学习scrapy框架和微信小程序开发,今天看到一个自己之前写的但是中途放弃的爬虫小案例——爬取猫眼电影TOP100榜的相关数据,现在将它写好并分享给大家。 爬虫的套路就是通过url发送请求,获取数据,在解析数据,最后保存数据。 一、模块 根据套路,选择好要使用的模块/库,这里用的模块/库是 import requests from lxml import etree import pandas as pd 二、正文 1.比较url,比较url变化规律,从而得到base

knighthood2001 1万+

猫眼专业版票房信息获取Python版

2023年猫眼实时票房的接口信息存在加密的情况,一般的方法无法直接获取到它的值,需要通过Js逆向去分析它接口信息的实现方法,从而找到合适的方法去破解它。 本代码完成了接口破解的部分,并含有接口破解的教程,同时使用了pandas库去存储某部电影的票房信息,可以设置持续的时间,但注意这种情况容易被封IP。

Qt实战:用QTreeView+QStandardItemModel实现多级多列文件浏览器(附完整代码)

本文深入探讨了使用Qt的QTreeView与QStandardItemModel构建多级多列文件浏览器的完整实践。通过分析模型/视图框架的优势,详细演示了从基础框架搭建、模拟数据填充,到对接真实文件系统实现懒加载的全过程。文章还涵盖了自定义委托、多列排序、右键菜单等高级定制技巧,并提供了性能优化建议和完整的代码示例,帮助开发者打造功能强大且高效的工业级文件管理界面。

weixin_29021291的博客 424

Python网络爬虫实践案例:爬取猫眼电影Top100

本文演示了如何使用Python爬取猫眼电影Top100的电影名称、主演和上映时间等信息,并将这些信息保存到txt文件中。此本文使用了requests库来发送HTTP请求,使用re库进行正则表达式匹配,并包含详细的代码解释。

m0_72958694的博客 3472

Qwen-Image(阿里通义千问)技术浅析(一)

Qwen-Image(阿里通义千问多模态模型)是阿里巴巴推出的视觉-语言多模态大模型,能够理解图像内容并完成复杂的跨模态任务。

m0_75253143的博客 679

python爬虫实战——爬取猫眼电影TOP100并导入excel表

系列文章目录 python爬虫实战——爬取淘宝商品信息并导入EXCEL表格(超详细). python多线程爬取壁纸 妈妈再也不担心我没壁纸了!. python爬虫爬取虎牙数据(简单利用requests库以及Beautifulsoup). python爬虫之爬取壁纸(新手入门级). 文章目录系列文章目录前言一、解析URL组成二、利用正则表达式获取所需的数据2.数据的优化三、使用selenium模拟网页刷新四、总体的函数和代码编写1.获取html内容2.正则表达式获取信息3.获取每页的网页链接4.将信息写入ex

Six23333的博客 3929

【云原生技术】K8s 在拉取镜像时报错tls: failed to verify certificate: x509: certificate signed by unknown authority

原因 Kubernetes 节点在拉取镜像时会对 Harbor 的 HTTPS 证书做严格校验; 日志里的核心报错是: ``` tls: failed to verify certificate: x509: certificate signed by unknown authority ``` 说明 Harbor 返回的服务器证书要么是自签发,要么缺少在系统信任链里的根/中级 CA,节点因此拒绝连接。 你需要让 **所有负责拉镜像的节点(containerd 或 Docker 守护进程)

weixin_46453070的博客 2875

【数据集4】GSWP3数据集详解

简介GSWP3数据集

WW、forever的博客 1368

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

姓名:隋顺意 博客:Sui_da_xia 微信名:世界上的霸主 如今,所有人无时无刻在使用互联网。它就像一张大网,将所有人联系在一起。而总有些可恶的刺头,只让他人看他的内容,不把他的数据给大家用。 正因为如此,我们有了伟大的爬虫工程师,他们手持利剑,突破刺头设置的重重难关,获取数据。今天,就让我们一起,共同大战“猫眼电影”设置的障碍把!

Sui_da_xia的博客 8905

JAVA:Spring Boot 集成 LibreOffice 实现文档在线转换服务

本文介绍了在企业级应用开发中使用LibreOffice实现文档格式转换的技术方案。通过对比分析商业库、纯Java方案和云服务API的优缺点,重点阐述了LibreOffice在格式兼容性、转换质量和零成本方面的优势。文章详细说明了环境准备步骤,包括Windows/Linux系统安装LibreOffice、解决中文乱码问题以及Docker部署方案。最后提供了Spring Boot项目的基本配置,包括Maven依赖和application.yml配置文件,为构建稳定高效的文档转换服务奠定基础。

木头 520
上一篇: 【python基础篇】常用内置对象与操作
下一篇: 爬虫实战(二)猫眼电影动态数据爬取
yeverwen
博客等级 码龄14年 116粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值