豆瓣短评榜单短评下载

news/2024/9/21 6:20:40/文章来源:https://www.cnblogs.com/suifeng2000/p/18353274

豆瓣短评榜单短评下载

创建时间:2024-08-07

一、完整代码

import requests
from lxml import etreedef get_html(main_url):header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'}# 拿链接res = requests.get(url, headers=header)res.encoding = res.apparent_encodinghtml = res.textreturn htmldef get_url_lists(html):tree = etree.HTML(html)url_lists = tree.xpath('//div[@class="hd"]/a/@href')return url_listsdef movie_concat(html):tree = etree.HTML(html)content = tree.xpath('//div[@id="hot-comments"]//p[@class=" comment-content"]/span/text()')title = tree.xpath('//div[@class="mod-hd"]/h2/i/text()')movie_concat =  '\n' +title[0] + '\n' + '\n'.join(content)return movie_concatdef save_concat(movie_concat):with open('短评.txt', 'a+', encoding='utf-8') as f:f.write(movie_concat)if __name__ == '__main__':url = 'https://movie.douban.com/top250?start=0'for url in get_url_lists(get_html(url)):save_concat(movie_concat(get_html(url)))

效果:

二、代码学习

以下是整个代码的主要逻辑和功能:

2.1 定义了一个 get_html 函数

用于获取网页的 HTML 内容。在这个函数中,我们设置了一个模拟浏览器的 User-Agent 头部信息,然后使用 requests.get 方法获取网页,并处理了编码问题。

def get_html(main_url):header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'}# 拿链接res = requests.get(url, headers=header)res.encoding = res.apparent_encodinghtml = res.textreturn html

2.2get_url_lists 函数

通过 lxmletree 模块,使用 xpath 表达式从 HTML 中提取出电影详情页的链接列表。

def get_url_lists(html):tree = etree.HTML(html)url_lists = tree.xpath('//div[@class="hd"]/a/@href')return url_lists

2.3 movie_concat 函数

进一步从每个电影详情页的 HTML 中提取出电影的标题和热门短评内容,并进行整合。

def movie_concat(html):tree = etree.HTML(html)content = tree.xpath('//div[@id="hot-comments"]//p[@class=" comment-content"]/span/text()')title = tree.xpath('//div[@class="mod-hd"]/h2/i/text()')movie_concat =  '\n' +title[0] + '\n' + '\n'.join(content)return movie_concat

2.4 save_concat 函数

将整合好的电影短评内容保存到一个名为 短评.txt 的文件中。

def save_concat(movie_concat):with open('短评.txt', 'a+', encoding='utf-8') as f:f.write(movie_concat)

2.5 if __name__ == '__main__' 部分

我们指定了要爬取的豆瓣电影 top250 页面的初始链接,并通过循环遍历获取到的电影详情页链接,依次获取并保存短评内容。

if __name__ == '__main__':url = 'https://movie.douban.com/top250?start=0'for url in get_url_lists(get_html(url)):save_concat(movie_concat(get_html(url)))

通过这样的代码实现,我们能够自动获取豆瓣电影的短评信息,为进一步的数据分析或其他应用提供了基础。

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

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

相关文章

阿里云ACK托管版初始化

阿里云ACK托管版配置图例阿里云1.30.1版本 集群配置在创建过程中注意几个选项付费类型 (按量, 包年包月) 版本 选择VPC 网络插件 节点交换机

电机原理概要

深入理解无刷直流电机矢量控制技术 第一章 电机原理概要 1.1 左手定则 判断通电导体在磁场中的受力。导体受力 $ F(N) $为 \[F=B\times I \times L \]式中,\(B\)为磁通密度($ Wb/m^2\();\)I\(为电流(\)A\();\)L\(为处于磁场中导体的长度(\)m$)。 1.2 右手螺旋定则 右手…

USB协议详解第4讲(USB描述符-标准配置描述符)

1.USB描述符 USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述符和物理描述符。今天主要是学习USB标准配置描述符的组成。 2.标准配置描述符组成 一个USB设备至少有一个或者多个配置,这一点可以从设备描述符的最后…

开启/关闭子系统的命令

WSL 下的运行 我们需要怎么关闭或者开启子系统呢 用管理员权限打开的命令行 先用 wsl -l -v查看当前有无任务我这边是关闭的,于是我想把它开上,输入net start LxssManager已经开启,接下来去想去的地方操作就好了 如果要关掉子系统呢 直接net stop LxssManager即可关闭本文来…

解决LocalDateTime返回前端数据为数组结构的问题

问题现象解决办法如下 1、使用@JsonFormat @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")结果2、使用SpringMVC提供的ExtendMessageConverters @Slf4j @Configuration public class WebMvcConfig extends WebMvcConfigurationSupport…

windows网络正常,但是网络图标变为飞机

本文来自博客园,作者:东岸,转载请注明原文链接:https://www.cnblogs.com/donghao99/p/18353254

气象爱好者必备网址(持续更新)

目录测站资料雷达资料探空图资料学习教程论坛/BBS/个人站天气模拟器 测站资料 q-weather 中山市气象公众网 深圳市气象局(台)-自动站查询 雷达资料 NMC-全国雷达回波反射率组合图 广州天气PDA版-雷达回波图 广州市海珠区Swift 江门雷达(相控阵雷达) NaTyphoon-雷达回波反射…

springMVC 请求流程解析

` @SuppressWarnings("deprecation") protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { // 实际处理时用的请求,如果不是上传请求,则直接使用接收到的 request,否则封装成上传的 request HttpServletRequ…

时间分辨率、采样率与采样深度三者关系理解

在脑成像研究中,分辨率和采样率是一个经常被提及的概念,但分辨率和采样率有时候容易混淆。除此之外,采样深度这个重要的概念却很少被提及。因此,本篇随笔主要内容是为阐述上述三者的概念以及相关联系。 概念的明晰 了解关系之前,首先需要明晰三者的定义概念,其中分辨率仅…

SciTech-BigDataAIML-Algorithm-: 主观经验:先验概率似然概率 和 客观事实:后验概率条件概率 + Floyd(弗落伊得)最短路线算法

主观经验 和 客观事实:后验概率 Subjective主观经验: 先验概率 & 似然概率 Objective客观事实: 后验概率 & 条件概率Floyd(弗落伊得)最短路线算法

动手做科研-day01-AI的最新进展与科研应用

01. Python 程序运行工具以及环境搭建 选择使用kaggle官方的notebook作为环境搭建的平台, 因为之前使用过kaggle进行注册,因此直接简单登录,按照下图依次进行操作 note: 需要挂来登录 1. 点击create2. 创建notebook记事本3. 尝试写一个简单的hello world 先新建codeprint(&q…