文章目录

  • 项目描述
  • 内容模块
  • 代码区
  • 运行测试

项目描述

根据豆瓣评分排名,获取豆瓣评分前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的电影信息相关推荐

  1. Python第一战:爬取豆瓣排名前250的电影

    一.需求分析   爬取豆瓣电影Top250的基本信息,包括电影的名称.豆瓣评分.评价数.电影概况.电影链接等.(https://movie.douban.com/top250) 二.爬虫的定义   网 ...

  2. 爬取豆瓣网前一百名电影

    网站爬取的流程图: 实现项目我们需要运用以下几个知识点 一.获取网页 1.找网页规律: 2.使用 for 循环语句获得网站前4页的网页链接: 3.使用 Network 选项卡查找Headers信息: ...

  3. python爬取豆瓣排名前250部电影封面

    话不多说,先给出网页地址豆瓣电影 Top 250,进入后我们按F12打开开发者工具查看网页信息,然后随便右键点击一张电影封面查看元素如图: 容易看出我们所需要的封面地址在img这个标签下的src属性当 ...

  4. 爬取猫眼评分前100的电影

    这是简单的聚焦爬虫,爬取猫眼前100的电影,刚学爬虫时写的,没有什么困难的东西,但是如果以后再有新人看到的话,希望能对你产生一点点的帮助,具体代码和注释如下: import requests from ...

  5. 利用Scrapy爬取豆瓣排名前250部电影封面

    一.爬虫代码 项目目录结构: item.py文件 # -*- coding: utf-8 -*- import scrapyclass DoubanmovieItem(scrapy.Item):# t ...

  6. Requests:爬取豆瓣排名前250的电影名称

    import requests from bs4 import BeautifulSoup import pandas as pd # 读取豆瓣TOP250的电影名 def get_movies(): ...

  7. Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影

    文章目录 前言 安装bs4库 网站分析 获取页面 爬取页面 页面分析 其他页面 爬虫系列 前言 经过上篇博客Python爬虫小白教程(一)-- 静态网页抓取后我们已经知道如何抓取一个静态的页面了,现在 ...

  8. 爬虫项目实操三、用scrapy框架爬取豆瓣读书Top250的书名,出版信息和评分

    安装方法:Windows:在终端输入命令:pip install scrapy:mac:在终端输入命令:pip3 install scrapy,按下enter键,再输入cd Python,就能跳转到P ...

  9. 爬取豆瓣的正在热映电影

    爬取豆瓣的正在热映电影 引言 思路分析 代码 结果展示 引言 本篇文章较为基础,没有什么技术含量,主要是为了回顾一下如何用XPath提取HTML页面中的数据 思路分析 首先,进入豆瓣电影的主页,并且选 ...

最新文章

  1. 递归解决八皇后问题-小昝
  2. BERT面向语言理解的深度双向变换预训练
  3. Navicat和DBeaver的查询快捷键
  4. [BZOJ 2243] 染色
  5. 刷magisk模块后不能开机_联想启天商用电脑刷BIOS或维修换主板后 开机叫两声处理办法...
  6. 【php】基础学习3
  7. 【Java】Junit、反射和注解的笔记
  8. 【问答集锦】减少专家依赖,自动化机器学习如何实现AI普惠?
  9. mysql 分库分表 后怎么操作,MySQL要分表分库怎么进行数据切分?
  10. Best Time to Buy and Sell Stock III O(n) 求解方法
  11. 数据结构严蔚敏 栈基本操作 C语言实现
  12. python菜鸟教程网址是什么-Python菜鸟教程
  13. win7计算机出现空白图标,Win7系统桌面图标显示异常变未知白色图标解决方法大全...
  14. NoteExpress样式制作手册
  15. 名人名言摘选-李嘉诚
  16. 分门别类刷leetcode——递归和回溯搜索(C++实现)
  17. 深度拆解:体验好、满意度高,客户为什么不复购的内在逻辑
  18. 区间调度问题(最大利润作业调度问题)
  19. Linux如何卸载坚果云,解决ubuntu16.04安装坚果云闪两下打不开问题(示例代码)
  20. qt打开xls文件_Qt操作Excel

热门文章

  1. 屏幕点击功能产品实现
  2. matlab语音波形,MATLAB程序原始语音信号波形与加噪信号波形(最新整理)
  3. 如何修改桌面新建菜单项
  4. AI绘画——了解AI绘画爆火原因与工具,并生成几个端午绘画小作品
  5. 官网Instagram集成
  6. 10个科学睡眠的小细节
  7. labelGo:基于 YOLOv5 的辅助标注工具
  8. 【心酸】从上一家公司到下一家公司
  9. 计算诸葛亮《出师表》中一共出现了多少种汉字
  10. 2020年最新 iPad Pro上的激光雷达是什么?来激光SLAM技术中找答案