爬取豆瓣评分前50的电影信息
文章目录
- 项目描述
- 内容模块
- 代码区
- 运行测试
项目描述
根据豆瓣评分排名,获取豆瓣评分前50的电影信息。主要包括:电影名称、电影评分、评价人数和电影短评信息,并存储到本地表格文件。
内容模块
使用requests获取页面信息。使用BeautifulSoup结合正则表达式解析页面,获取所需要的电影名称、电影评分、评价人数、电影短评等信息。然后使用openpyxl模块将信息保存到新建的excel表格中。
代码区
import reimport requests
from bs4 import BeautifulSoupdef get_content(url,):try:user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36"response = requests.get(url, headers={'User-Agent': user_agent})response.raise_for_status() # 如果返回的状态码不是200, 则抛出异常;response.encoding = response.apparent_encoding # 判断网页的编码格式, 便于respons.text知道如何解码;except Exception as e:print("爬取错误")else:print(response.url)print("爬取成功!")return response.contentdef parser_content(htmlContent):# 实例化soup对象, 便于处理;soup = BeautifulSoup(htmlContent, 'html.parser')# 1). 电影信息存储在ol标签里面的li标签:# <ol class="grid_view">olObj = soup.find_all('ol', class_='grid_view')[0]# 2). 获取每个电影的详细信息, 存储在li标签;details = olObj.find_all('li')for detail in details:# # 3). 获取电影名称;movieName = detail.find('span', class_='title').get_text()# 4). 电影评分:movieScore = detail.find('span', class_='rating_num').get_text()# 5). 评价人数***************# 必须要转换类型为字符串movieCommentNum = str(detail.find(text=re.compile('\d+人评价')))# 6). 电影短评movieCommentObj = detail.find('span', class_='inq')if movieCommentObj:movieComment = movieCommentObj.get_text()else:movieComment = "无短评"movieInfo.append((movieName, movieScore, movieCommentNum, movieComment))import openpyxldef create_to_excel(wbname, data, sheetname='Sheet1', ):"""将制定的信息保存到新建的excel表格中;:param wbname::param data: 往excel中存储的数据;:param sheetname::return:"""print("正在创建excel表格%s......" % (wbname))# wb = openpyxl.load_workbook(wbname)# 如果文件不存在, 自己实例化一个WorkBook的对象;wb = openpyxl.Workbook()# 获取当前活动工作表的对象sheet = wb.active# 修改工作表的名称sheet.title = sheetname# 将数据data写入excel表格中;print("正在写入数据........")for row, item in enumerate(data): # data发现有4行数据, item里面有三列数据;print(item)for column, cellValue in enumerate(item):# cell = sheet.cell(row=row + 1, column=column + 1, value=cellValue)cell = sheet.cell(row=row+1, column=column + 1)cell.value = cellValuewb.save(wbname)print("保存工作薄%s成功......." % (wbname))if __name__ == '__main__':doubanTopPage = 2perPage = 25# [(), (), ()]movieInfo = []# 1, 2, 3 ,4, 5for page in range(1, doubanTopPage+1):# start的值= (当前页-1)*每页显示的数量(25)url = "https://movie.douban.com/top250?start=%s" %((page-1)*perPage)content = get_content(url)parser_content(content)create_to_excel('/tmp/hello.xlsx', movieInfo, sheetname="豆瓣电影信息")
运行测试
爬取豆瓣评分前50的电影信息相关推荐
- Python第一战:爬取豆瓣排名前250的电影
一.需求分析 爬取豆瓣电影Top250的基本信息,包括电影的名称.豆瓣评分.评价数.电影概况.电影链接等.(https://movie.douban.com/top250) 二.爬虫的定义 网 ...
- 爬取豆瓣网前一百名电影
网站爬取的流程图: 实现项目我们需要运用以下几个知识点 一.获取网页 1.找网页规律: 2.使用 for 循环语句获得网站前4页的网页链接: 3.使用 Network 选项卡查找Headers信息: ...
- python爬取豆瓣排名前250部电影封面
话不多说,先给出网页地址豆瓣电影 Top 250,进入后我们按F12打开开发者工具查看网页信息,然后随便右键点击一张电影封面查看元素如图: 容易看出我们所需要的封面地址在img这个标签下的src属性当 ...
- 爬取猫眼评分前100的电影
这是简单的聚焦爬虫,爬取猫眼前100的电影,刚学爬虫时写的,没有什么困难的东西,但是如果以后再有新人看到的话,希望能对你产生一点点的帮助,具体代码和注释如下: import requests from ...
- 利用Scrapy爬取豆瓣排名前250部电影封面
一.爬虫代码 项目目录结构: item.py文件 # -*- coding: utf-8 -*- import scrapyclass DoubanmovieItem(scrapy.Item):# t ...
- Requests:爬取豆瓣排名前250的电影名称
import requests from bs4 import BeautifulSoup import pandas as pd # 读取豆瓣TOP250的电影名 def get_movies(): ...
- Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影
文章目录 前言 安装bs4库 网站分析 获取页面 爬取页面 页面分析 其他页面 爬虫系列 前言 经过上篇博客Python爬虫小白教程(一)-- 静态网页抓取后我们已经知道如何抓取一个静态的页面了,现在 ...
- 爬虫项目实操三、用scrapy框架爬取豆瓣读书Top250的书名,出版信息和评分
安装方法:Windows:在终端输入命令:pip install scrapy:mac:在终端输入命令:pip3 install scrapy,按下enter键,再输入cd Python,就能跳转到P ...
- 爬取豆瓣的正在热映电影
爬取豆瓣的正在热映电影 引言 思路分析 代码 结果展示 引言 本篇文章较为基础,没有什么技术含量,主要是为了回顾一下如何用XPath提取HTML页面中的数据 思路分析 首先,进入豆瓣电影的主页,并且选 ...
最新文章
- 递归解决八皇后问题-小昝
- BERT面向语言理解的深度双向变换预训练
- Navicat和DBeaver的查询快捷键
- [BZOJ 2243] 染色
- 刷magisk模块后不能开机_联想启天商用电脑刷BIOS或维修换主板后 开机叫两声处理办法...
- 【php】基础学习3
- 【Java】Junit、反射和注解的笔记
- 【问答集锦】减少专家依赖,自动化机器学习如何实现AI普惠?
- mysql 分库分表 后怎么操作,MySQL要分表分库怎么进行数据切分?
- Best Time to Buy and Sell Stock III O(n) 求解方法
- 数据结构严蔚敏 栈基本操作 C语言实现
- python菜鸟教程网址是什么-Python菜鸟教程
- win7计算机出现空白图标,Win7系统桌面图标显示异常变未知白色图标解决方法大全...
- NoteExpress样式制作手册
- 名人名言摘选-李嘉诚
- 分门别类刷leetcode——递归和回溯搜索(C++实现)
- 深度拆解:体验好、满意度高,客户为什么不复购的内在逻辑
- 区间调度问题(最大利润作业调度问题)
- Linux如何卸载坚果云,解决ubuntu16.04安装坚果云闪两下打不开问题(示例代码)
- qt打开xls文件_Qt操作Excel