python爬虫小练习——爬取豆瓣电影top250

爬取豆瓣电影top250

需求分析

将爬取的数据导入到表格中,方便人为查看。

实现方法

三大功能
1,下载所有网页内容。
2,处理网页中的内容提取自己想要的数据
3,导入到表格中

分析网站结构需要提取的内容

在这里插入图片描述

代码

import requests
from bs4 import BeautifulSoup
import pprint
import json
import pandas as pd
import time# 构造分页数字列表
page_indexs = range(0, 250, 25)
list(page_indexs)# 请求头
headers = {'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/1'
}# 下载所有的网页然后交给下一个函数处理
def download_all_htmls():htmls = []for idx in page_indexs:url = "https://movie.douban.com/top250?start={}&filter=".format(idx)print("craw html", url)r = requests.get(url, headers=headers)if r.status_code != 200:raise Exception("error")htmls.append(r.text)time.sleep(0.5)return htmls# 解析HTML得到数据def parse_single_html(html):# 使用BeautifulSoup处理网页,传入参数html,使用html.parser模式处理soup = BeautifulSoup(html, 'html.parser')# 使用BeautifulSoup匹配想要的内容,使用find函数article_items = (soup.find("div", class_="article").find("ol", class_="grid_view").find_all("div", class_="item"))datas = []# 内容比较多分步提取内容for article_item in article_items:rank = article_item.find("div", class_="pic").find("em").get_text()info = article_item.find("div", class_="info")title = info.find("div", class_="hd").find("span", class_="title").get_text()stars = (info.find("div", class_="bd").find("div", class_="star").find_all("span"))rating_star = stars[0]["class"][0]rating_num = stars[1].get_text()comments = stars[3].get_text()datas.append({"rank": rank,"title": title,"rating_star": rating_star.replace("rating", "").replace("-t", ""),"rating_num": rating_num,"comments": comments.replace("人评价", "")})return dataspprint.pprint()if __name__ == '__main__':# 下载所有的网页内容htmls = download_all_htmls()# pprint.pprint(parse_single_html(htmls[0]))# 解析网页内容并追到all_datas的列表中all_datas = []for html in htmls:all_datas.extend(parse_single_html(html))# 使用pandas模块,批量导入到表格中df = pd.DataFrame(all_datas)df.to_excel("doubanTOP250.xlsx")

效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文章

https://www.bilibili.com/video/BV1CY411f7yh/?p=15

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/409997.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索Python数据结构与算法:解锁编程的无限可能

文章目录 一、引言1.1 数据结构与算法对于编程的重要性1.2 Python作为实现数据结构与算法的强大工具 二、列表和元组2.1 列表:创建列表、索引、切片和常用操作2.2 元组:不可变序列的特性和使用场景 三、字符串操作和正则表达式3.1 字符串的常见操作和方法…

C++_模板的特化

目录 一、非类型模板参数 二、模板的特化 1、特化的概念 2、函数模板的特化 3、类模板的特化 3.1 偏特化 3.2 全特化 3.3 部分特化 结语: 前言: 大多数情况下模板可以解决许多重复性工作,因为把不同的类型传给模板参数后&#xff0…

散列函数,哈希表hash table

附上一句话:我知道大家可能曾经了解过这个散列表了,我发现,如果多看几个相关的视频,从不同的表述方式和不同的理解角度来理解这个问题,我会明白的更透彻,也有更多新的收获,尤其是对这个算法的应…

linux-nfc neard 编译与安装

项目github地址: https://github.com/linux-nfc/neard git clone地址: https://github.com/linux-nfc/neard.git clone完源码切换到目录neard里。这个项目需要依赖一下库: - GCC compiler - D-Bus library - GLib library - Netlink (lib…

【如何在 GitHub上面找项目】【转载】

很多的小伙伴,经常会有这样的困惑,我看了很多技术的学习文档、书籍、甚至视频,我想动手实践,于是我打开了GitHub,想找个开源项目,进行学习,获取项目实战经验。这个时候很多小伙伴就会面临这样的…

【Maven】008-Maven 私服搭建与使用

【Maven】008-Maven 私服搭建与使用 文章目录 【Maven】008-Maven 私服搭建与使用一、概述1、简介2、建立私服后依赖查找和下载逻辑第一步:请求本地仓库第二步:请求 Maven 私服第三步:请求外部远程仓库(远程中央仓库等&#xff09…

【PostgreSQL】安装和常用命令教程

PostgreSQL window安装教程 window安装PostgreSQL 建表语句: DROP TABLE IF EXISTS student; CREATE TABLE student (id serial NOT NULL,name varchar(100) NOT NULL,sex varchar(5) NOT NULL,PRIMARY KEY (id) );INSERT INTO student (id, name, sex) VALUES (…

详解ISIS动态路由协议

华子目录 前言应用场景历史起源ISIS路由计算过程ISIS的地址结构ISIS路由器分类ISIS邻居关系的建立P2PMA ISIS中的DIS与OSPF中DR的对比链路状态信息的交互ISIS的最短路径优先算法(SPF)ISIS区域划分ISIS区域间路由访问原理ISIS与OSPF的不同ISIS与OSPF的术语…

2024美赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

基于Docker的Nginx的安装与配置

基于Docker的Nginx的安装与配置 1 为Nginx创建一个容器1.1 学习docker run1.2 通过docker run为Nginx创建并启动一个容器 2 配置Nginx2.1 学习docker的bind mount技术2.2 在Nginx容器中找到想修改的文件所在的目录2.2.1 认识nginx.conf文件2.2.2 访问Nginx服务,默认…

TortoiseGit 2.15.0.0 安装与配置(图文详细教程)

TortoiseGit的安装与配置 TortoiseGit是Tortoise为Git提供的版本可视化工具,简化了记忆Git命令行的过程,将命令行可视化。 确保自己电脑中已经下载好了git 官网下载TortoiseGit Download – TortoiseGit – Windows Shell Interface to Git 选择64-bi…

oracle 19c容器数据库data dump数据泵传输数据(3)---完全传输

目录 查看pdb1 创建pdb2 从pdb1 中导出元数据 在pdb2中导入元数据(dmp文件) Full Transportable Export/Import: Example 只传输除了system,sysaux,temp,undo以外的用户表空间,這種方式傳輸的是用戶自定…