Python爬取全球是最大的电影数据库网站IMDb数据
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
作者 Dark Horse
前言
在使用 Python 开发爬虫的过程中,requests 和 BeautifulSoup4(别名bs4) 应用的比较广泛,requests主要用于模拟浏览器的客户端请求,以获取服务器端响应,接收到的响应结果,如:网页HTML源码则交由 bs4 封装后再解析提取目标内容数据。
今天的案例中,我们将使用一个新库 MechanicalSoup 该库事实上是对 requests 和 bs4 的进一步封装,让请求和解析的工作进一步简化,如果你已经熟悉 requests 和 bs4 的基本操作,下面的代码理解起来应该不会很困难。
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
Python学习交流群:1039649593
准备工作
mechanicalsoup 安装
终端下使用 pip 安装即可,也会自动安装相关依赖组件库
pip install mechanicalsoup
网页分析
今天我们要请求的是全球是最大的电影数据库网站 IMDb,其官网地址是 http://www.imdb.com 首页显示效果如图所示:
我们要爬取数据的页面,可以通过“Menu“ 导航的子菜单项 "Top Rated Movies" 进入,或直接访问 https://www.imdb.com/chart/top/
我们要采集的目标数据为左侧页面的列表,经过浏览器右键“检查”分析,得知第一条数据项均包含在一个表格行内,此时我们进一步明确要采集的数据为排名、电影标题、发行年份三列,分析得到以下HTML元素:
目标数据均包含在一个td class="titleColumn" 单元格内,此时只需要批量获取有该特征的批量单元格,再取出目标数据并清理即可。
编码实现
采集并打印
初步代码结构:
imdb.py
import mechanical# 数据容器
data = []def fetch_data():# 此处爬取页面目标数据def main():fetch_data()if __name__ == "__main__":main()
重点的代码逻辑是包含在 fetch_data() 函数内,具体代码如下(含注释):
def fetch_data():url = "https://www.imdb.com/chart/top/"# 构造浏览器对象b = mechanicalsoup.StatefulBrowser()# 请求目标网址b.open(url)# b.page 即为当前响应页面源码,且已封装为 BeautifulSoup 对象# 页面中找出所有具有 class="titleColumn" 属性的 td 单元格集合items = b.page.find_all("td", class_="titleColumn")# 遍历所有项for item in items:# 取出当前单元格中所所有文本,以"\n"分隔为三个元素row = item.text.strip().split("\n")# 进一步清理元素值的空格# 此时列表中三个元素对应为排名、标题、年份row = [x.strip() for x in row]# 将数据添加至data列表容器,便于进一步处理data.append(row)# 打印显示print(row)
此时代码如下:
import mechanicalsoupdata = []def fetch_data():url = "https://www.imdb.com/chart/top/?ref_=nv_mv_250"b = mechanicalsoup.StatefulBrowser()b.open(url)items = b.page.find_all("td", class_="titleColumn")for item in items:row = item.text.strip().split("\n")row = [x.strip() for x in row]data.append(row)print(row)def main():fetch_data()if __name__ == "__main__":main()
此时运行代码 python imdb.py 结果如下:
可以看到在逐行提取时打印的效果,此时数据窗口 data 中也包括了所有行250行的电影信息。
将批量数据写入Excel文件
如果将采集的批量电影数据(250条)一次性写入Excel 表格文件,可以安装使用 Excel 操作库,比如:openpyxl 等,在执行完前述步骤 fetch_data() 执行新建、并写入Excel 操作即可。
Python爬取全球是最大的电影数据库网站IMDb数据相关推荐
- python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化
python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...
- Python爬取豆瓣正在上映的电影
Python爬取豆瓣正在上映的电影 #爬取豆瓣正在上映的电影 import requests from lxml import etree #1.将目标从网站上的页面抓取下来 headers = {' ...
- 使用Python爬取不同类别的豆瓣电影简介
使用Python爬取不同类别的豆瓣电影简介 之前做过一点文本分类的工作,从豆瓣上爬取了不同类别的数千条电影的简介. 爬取目标 我们爬取的目标是 豆瓣影视,打开豆瓣网,随便点击一部电影,即可看到电影的介 ...
- Python 爬取 201865 条《隐秘的角落》弹幕数据,发现看剧不如爬山?
Python 爬取 201865 条<隐秘的角落>弹幕数据,发现看剧不如爬山? 本文不涉及剧透!请放心食用 最近又火了一步国产剧:<隐秘的角落> 如果你没看过,那可能会对朋友圈 ...
- python爬取某城市各监测站点历史空气质量数据
python爬取某城市各监测站点历史空气质量数据 引言 正文 一.安装Web driver 二.安装selenium 三.数据爬取 引言 由于要使用某地各监测站点的空气质量数据做数据预测,因此需要去网 ...
- Python爬取了《雪中悍刀行》数据,数据可视化分析
Python爬取了<雪中悍刀行>数据,数据可视化分析 如何查找视频id 项目结构 制作词云图 制作最近评论数条形图与折线图 制作每小时评论条形图与折线图 制作最近评论数饼图 制作每小时评论 ...
- python爬取猫眼正在热映电影
用python写爬虫爬取需要的数据比较容易,以Python简洁的语法和一大波成熟的库,写起来相当的快 python的版本以及使用的库 Python 3.6.4 requests lxml 这次主要是爬 ...
- python 爬取当当网商品价格并写入数据库
python 爬取数据并写入数据库案例: import requests import pymysql import re from fake_useragent import UserAgent f ...
- Python爬取「英语流利说」的配音视频数据(第一次粉一个人)
一.故事开端 程序猿有时候很痛苦,遇到问题解决不了就睡不着,也找不到人倾诉,只能通过失眠来解脱,那天长夜漫漫,我却无心睡眠,就拿起手机继续刷朋友圈,发现了睡前故事这个信息: 就手贱点进去一看,妈呀顿时 ...
最新文章
- LINUX - pthread_detach()与pthread_join()
- CPPUNIT的安装和编译
- SpringBoot启动流程是怎样的
- HBase详细的安装和使用方法
- Highcharts改Y轴的刻度值
- Linux内存管理:函数调用图谱-1
- Vue.js 2.0版
- Comprehensive learning path – Data Science in Python深度学习路径-用python进行数据学习
- 革新—决定磁带未来的最大挑战
- ASCII码判断大小
- 第二章 OpenHarmony工程介绍
- BZOJ 3669 luogu 2387 魔法森林
- vue 使用animate动画
- Ubuntu18.04 使用gnome-tweak美化系统主题
- NBA球员生涯数据统计系统(中南大学C语言课设)
- 腾讯云服务器用户名在哪里看,腾讯云服务器如何查看账号操作日志信息
- c#中获得windows、system、system32等一些系统文件夹的路径
- 训练SSD时,viz报错
- 惊叹!前NASA员工绘大型精美地面立体画(高清组图)
- shell一键部署mysql