手刃豆瓣top250排行榜

  • 一、前言
  • 二、环境准备
  • 三、具体实现
    • 1、页面获取
    • 2、数据获取
    • 3、数据保存
    • 4、主程序
    • 5、成果
  • 四、最后

完成目标:
  将电影的序号、电影名、电影链接、评分、评价人数、概况保存下来


一、前言

  豆瓣是我挺喜欢的一个网站,因为有时候书荒了,或者想看电影了,我都会去豆瓣瞅一瞅,有哪些评分高的书籍和电影。当然喜欢它还有另外一个原因,那就是豆瓣可是新手练习爬虫的必爬网站啊!所以今天的目标也是豆瓣,要爬取的则就是豆瓣电影的top250

二、环境准备

编辑器:pycharm

用到的库:requests、lxml、xlwt

三、具体实现

1、页面获取

  定义一个函数来获取每次请求到的页面


def get_page(i): # i用来获取多页内容url = "https://movie.douban.com/top250?start="headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 Edg/92.0.902.78"}# 第一页url:https://movie.douban.com/top250?start=# 第一页url:https://movie.douban.com/top250?start=25# 分析得知 start=后面的数字对应上一页最后一个电影的序号url = url + str(i * 25)# 使用requests.get方法获取相应res = get(url, headers=headers)# res.status_code 获取每次请求的状态码# print(res.status_code) # 200表示请求成功return res.text # 获取整个页面文本,使用text属性

2、数据获取

  获取一个页面的所需信息

def get_data(html):# 采用xpath的方式解析数据# 使用etree.HTML()解析在线网页tree = etree.HTML(html)# 先找到每个电影的全部信息保存的divitem = tree.xpath('//div[@class="item"]')# data_list 存放电影信息的列表global data_listfor i in item:# 进一步额解析出需要的信息data = []# 序号NO = i.xpath('.//div[@class="pic"]/em/text()')[0]data.append(NO)# 电影名title = i.xpath('.//div[@class="hd"]/a/span[1]/text()')[0]data.append(title)# 电影详情链接href = i.xpath('.//div[@class="hd"]/a/@href')[0]data.append(href)# 豆瓣评分rating_num = i.xpath('.//div[@class="star"]/span[2]/text()')[0]data.append(rating_num)# 评价人数per_num = i.xpath('.//div[@class="star"]/span[4]/text()')[0]# 将XXXXXXX人评价变成纯数字的形式data.append(per_num[:-3])# 概述inq = i.xpath('.//span[@class="inq"]/text()')#进一步判断,概述部分可能为空。做出相应处理if len(inq) != 0:inq = inq[0]data.append(inq)else:data.append(" ")#将一个电影的序号、电影名、电影链接、评分、评价人数、概况保存到data_listdata_list.append(data)

3、数据保存

  将信息保存到Excel表格

def savedata(data_list):
#实例化Workbook类,设置编码格式book = xlwt.Workbook(encoding="utf-8", style_compression=0)#添加一个sheetsheet = book.add_sheet("豆瓣电影TOP250", cell_overwrite_ok=True)colList = ["序号", "电影名", "电影链接", "评分", "评价人数", "概况"]#为表格添加表头for i in range(len(colList)):sheet.write(0, i, colList[i])#将所有信息保存到Excelfor i in range(len(data_list)):取出一条电影信息data = data_list[i]for j in range(len(colList)):# 写入每一列信息sheet.write(i + 1, j, data[j])# 保存文件book.save("豆瓣电影TOP250.xls")print("文件保存完成")

4、主程序

if __name__ == '__main__':data_list = []# 爬取10页共250条信息for i in range(10):#得到网页html = get_page(i)#得到数据get_data(html)print(f"第{i + 1}页爬取完成...")#保存数据savedata(data_list)

5、成果

四、最后

  1、在整个程序中,终点在于对于每一个信息的xpath寻找,努力寻找出最简单的xpath路径。
  2、评论人数竟然是釜山行???
  3、评论人数前十星爷的唐伯虎点秋香和功夫
  4、该重温肖克申的救赎了~~

手刃豆瓣top250排行榜相关推荐

  1. python分布式爬虫开题报告范文_基于Python的豆瓣Top250排行榜影片数据爬取和分析开题报告...

    一.选题依据:(简述研究现状,说明该毕业设计的设计目的及意义) 研究现状 Python是一门很全面的语言,又随着大数据和人工智能的兴起,广受爬虫设计者们的青眯.设计者们运用Python语言的框架-Sc ...

  2. 利用BeautifulSoup爬取豆瓣top250排行榜标题

    利用BeautifulSoup爬取标题 整体思想: 首先导入所需要的库 声明一个方法 ,将过程包裹起来 获取网页 解析网页,找到我们所需要的东西 保存内容 1.获取随机头部的库方法 from fake ...

  3. 朴素贝叶斯算法实现 豆瓣Top250电影评价的情感分析与预测。​

    前言 本文使用朴素贝叶斯算法实现 豆瓣Top250电影评价的情感分析与预测. 最近在学习自然语言正负面情感的处理问题,但是绝大部分能搜索到的实践都是Kggle上IMDB影评的情感分析. 所以在这里我就 ...

  4. Scrapy框架学习 - 爬取豆瓣电影排行榜TOP250所有电影信息并保存到MongoDB数据库中

    概述 利用Scrapy爬取豆瓣电影Top250排行榜电影信息,并保存到MongoDB数据库中 使用pymongo库操作MOngodb数据库 没有进行数据清洗 源码 items.py class Dou ...

  5. python爬取豆瓣电影top250并保存为xlsx_python 爬虫获取豆瓣电影排行榜前250并写入excel...

    豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https://movie.douban.com/top250?sta ...

  6. python爬取豆瓣电影top250_Python 爬取豆瓣电影Top250排行榜,爬虫初试

    from bs4 import BeautifulSoup import openpyxl import re import urllib.request import urllib.error # ...

  7. 项目之爬虫入门(豆瓣TOP250)

    本文的代码是基于Python的爬虫练手,爬取豆瓣电影top250的信息 配套视频:爬虫视频 先贴一张爬虫结果图: 预备知识 浏览器访问网址的步骤是:1)用户发送一个url链接访问请求:2)服务器根据请 ...

  8. 近期爬虫学习体会以及爬豆瓣Top250源码实战

    近期爬虫学习体会以及爬豆瓣Top250源码实战 我是在B站https://www.bilibili.com/video/BV12E411A7ZQ?p=25里学习的,至今已经可以手写爬豆瓣Top250代 ...

  9. scrapy mysql 豆瓣_Python爬虫之Scrapy+Mysql+Mongodb爬豆瓣top250电影

    学习python时,爬虫是一种简单上手的方式,应该也是一个必经阶段.本项目用Scrapy框架实现了抓取豆瓣top250电影,并将图片及其它信息保存下来.爬取豆瓣top250电影不需要登录.没有JS解析 ...

  10. 豆瓣电影排行榜下载,main主文件代码(未完善版)

    豆瓣电影排行榜下载,main主文件代码,(多敲几遍,熟悉熟悉) from bs4 import BeautifulSoup # 网页解析,获取数据 import re # 正则表达式,进行文字匹配 i ...

最新文章

  1. 在边缘AI与云AI之间寻找平衡
  2. 意见征集,世界AI智商评测量标准2018年新版讨论方案
  3. SimpleAdapter理解
  4. Python Django HttpResponse响应对象
  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:表格单元格使用了 bg-primary 类...
  6. zdal配置文件_Autofac的基本使用---4、使用Config配置
  7. Linux用户配置文件(第二版)
  8. 构建Blazor WASM和服务器一体化解决方案
  9. Android学习笔记11---_查看与输出日志信息
  10. 数据预处理—2.为什么Lasso回归可以做特征选择(变量挑选)而岭回归做不到呢?
  11. 算法真的“难”吗?其实也不见得...
  12. .AsEnumerable() 和 .ToList() 的区别:
  13. c++线程间通信的几种方法_JAVA并发之线程amp;进程
  14. LINUX下载编译nasm
  15. 京东数科发布《京东区块链技术实践白皮书2020》(附白皮书下载链接)
  16. matlab firl,matlab 利用matlab工具箱函数fir1 联合开发网 - pudn.com
  17. c语言编程求阶梯数,c语言编程阶梯教程十二
  18. 08 干系人管理ITO
  19. 【1】国产USB转接芯片CH347-初体验
  20. Jaca程序基础学习笔记

热门文章

  1. 简单做份西红柿炒蛋778
  2. web前端网页制作 小组作业(制作一个简单的小网页)
  3. unpack python_python数据处理之 ddt,@data, @unpack
  4. 录播系统服务器大全,专业高清录播服务器 全高清录播系统 系统设计精美
  5. 【戴师兄数分】excel基础操作——函数专题(个人笔记)
  6. hualinux2.2 环境基础:rpm包安装el6、el7、el8选择
  7. OPC 救援:OPC Rescue Crack
  8. macos的pycharm无setting选项
  9. HTML基础之 小白入门
  10. 第五章 初始化和清理