豆瓣影评信息爬取 (爬虫)

代码块:

from lxml import etree
import requestsheaders={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0'
}url_list=[]
for i in range(0,5):i*=20urls=f"https://movie.douban.com/review/best/?start={i}"url_list.append(urls)
print(url_list)detail_urls=[]
for url in url_list:response=requests.get(url,headers=headers)# print(response.status_code)content = response.content.decode('utf8')html=etree.HTML(content)detail_url = html.xpath('//div[@class="main-bd"]/h2/a/@href')detail_urls.append(detail_url)# print(detail_urls)# breakmovies=[]
i=0
# 循环豆瓣网页的每一页
for page in detail_urls:# 循坏这页的网页每个连接for url in page:try:response=requests.get(url,headers=headers)content=response.content.decode('UTF-8')html=etree.HTML(content)# 抓取电影名# // *[ @ id = "content"] / div / div[2] / div[4] / div[2] / atitle=html.xpath('//div[@class="subject-title"]/a/text()')[0][2:]# 抓取评论者和评分commenter=html.xpath('//header/a/span/text()')[0]rank=html.xpath('//heafer//span/@title')# 抓影评comment=html.xpath('//div[@id="link-report"]//p/text()')comment=''.join(comment)movie={"title":title,"commenter":commenter,# "rank":rank,# "comment":comment}movies.append(movie)except:continuei+=1print(f"第{i}页已经爬取完毕")print(movies)

效果:

在这里插入图片描述
内容解释:

  1. etree.HTML(内容):将不是html的格式的内容转换成html

  2. etree.tostring(内容,encoding=‘UTF-8’).decode(‘UTF-8’):如果不是UTF-8编码格式的内容,这里可以更改成UTF-8的内容

  3. etree.parse(文件路径):parse对html导入python并解析

  4. 自定解析器:

    如果在浏览器上保存网页到本地,在python中获取.html文件需要利用自定解析器来解析文件内容

# 自定解析器
parser=etree.HTMLParser(encoding='UTF-8')
html=etree.parse(路径,parser=parser)
result=etree.tostring(html,encoding='UTF-8').decode('UTF-8')

xpath中的[1]表示第一个元素,而python中的第一个是从0开始,例如:[0]

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

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

相关文章

链表带环问题——leetcode环形链表1 2

证明链表带环 链表的带环问题指的是本该指向NULL的最后一个节点指向了之前的节点,导致链表成环,找不到尾结点的情况,那么我们该如何证明链表带环呢? 我们可以类比物理中的追及问题,让快慢指针同时走,两者相…

企微知识库是如何搭建的?这篇文章来解答

知识库在企业中发挥着至关重要的作用,它不仅能够存储和整理重要的工作资料,还能提高员工的工作效率,加强团队之间的协作。对于使用微信企业版(企业微信)的企业来说,搭建一个专门的知识库是极有必要的。本文…

ceph osd分组

一、前言 使用分组可以更好的管理osd,将不同类型的磁盘,分到不同的组中,例如hhd类型的osd分配到hhd组,ssd类型的osd分配到ssd组,将io要求不高的分配到hhd组做存储,io要求高的分配到ssd组做存储 二、配置 查…

ubuntu23.10.1 php8.2安装

1、更新镜像源 apt update2、安装php apt install php php-fpm php-mysql其他扩展包,在后面加个-可以查看,选择安装,我这里是php8.2版本 apt-get install php8.2- 2.1php与nginx结合 PHP-FPM的配置文件位于/etc/php/{PHP版本}/fpm/pool.d/www.conf;…

Springboot中为什么你能通过一小段代码来访问网页?

为什么你能通过一小段代码来访问网页 要明白这件事,首先要知道我们是如何访问网站的 访问网页的本质涉及多个技术层面,从用户输入网址到最终在浏览器上看到页面的过程包含了多个步骤: 域名解析:当你在浏览器中输入一个网址&…

4.19作业

1.总结二进制信号量和计数型信号量的区别,以及他们的使用场景。 二进制信号量:信号量的数值只有0和1。(用于共享资源的访问),用于同步互斥计数型信号量:计数型信号量的值一般是大于或者等于2(生…

字体反爬知识积累2

一、os模块中函数的应用 如何获取当前文件中所有文件的路径方法 这段代码使用 os.walk()函数来遍历指定目录 imgs 下的所有子目录和文件。具体来说,os.walk()函数返回一个生成器,可以在每次迭代中获取目录树中的一个元组,元组包含当前目录的…

MySQL--数据的增删改

目录 1.添加数据 1.1、添加全部字段的数据 1.2、添加指定字段的部分数据 1.3、同时添加多条记录 1.4、插入查询结果数据 2.修改数据 2.1、更新全部数据 2.2、更新部分数据 3.删除部分数据 3.1、删除部分数据 3.2、删除全部数据 文中[ ]里 面的内容可写可不写 1.添加数…

【Linux C | 多线程编程】线程同步 | 条件变量(万字详解)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-04-15 0…

电大搜题微信公众号:重庆开放大学学子的学习利器

在当今信息化时代,学习已经成为每个人不可或缺的一部分。然而,对于重庆开放大学的学子们来说,由于远程教育的特殊性,他们面临着更大的学习挑战。幸运的是,他们现在可以依靠一款强大的学习利器——电大搜题微信公众号&a…

单片机基础知识 07

一. 键盘检测 键盘分为编码键盘和非编码键盘。 编码键盘 :键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或者键值,如计算机键盘。 非编码键盘:靠软件编程来识别。 在单片机组成的各种系统中,用的较多的…

wsl + ubuntu + pycups + mqtt 远程打印入门

文章目录 wsl + ubuntu + pycups + mqtt 远程打印入门1. wsl安装python2. 安装pycups3. 打印机列表4. 查看API5. 打印文件6. mqtt配置7. mqtt对接参考wsl + ubuntu + pycups + mqtt 远程打印入门 这篇讲pycups 配合mqtt 做远程打印,cups 安装要看上一篇 windows10 下 wsl + u…

Darknet框架优化介绍

一、DarkNet框架简介 1.DarkNet的简介 Darknet是一个完全使用C语言编写的人工智能框架,可以使用CUDA的开源框架。主要应用于图像识别领域。 它具有可移植性好,安装间接,查看源码方便等优势,提供了OpenCV等附加选项,还…

(七)Pandas时序数据 学习简要笔记 #Python #CDA学习打卡

一. 时序数据简介 1)定义 时间序列(time series),就是由时间构成的序列,它指的是在一定时间内按照时间顺序测量的某个变量的取值序列,比如一天内的温度会随时间而发生变化,或者股票的价格会随…

c语言题目之求最大公约数

题目内容:求最大公约数 给定两个数,求这两个数的最大公约数 例如: 输入:20 40 输出:20 什么叫最大公约数? 方法分析: 提示:这里我们用辗转相除法: 例如:输…

Linux为根目录扩容

只适用于同一块硬盘扩容 背景:一块硬盘512G,双系统,window分了200G,同样也暂时给了linux 200G,随着使用linux不满足于这200,欲将剩下加其上 └─$ df -h # 查看已分配磁盘使用情况 Filesystem Size…

腾讯云APP备案指南:一站式完成备案手续,助您顺利上线

工信部最新通知要求所有互联网信息服务提供者完成移动互联网应用程序备案手续。腾讯云为开发者提供了简单易行的备案流程,本文详细解答如何在腾讯云平台完成备案,帮助开发者快速上线自己的APP。从验证备案域名到腾讯云审核,一步步指导您完成备…

vue 一键更换主题颜色

这里提供简单的实现步骤,具体看自己怎么加到项目中 我展示的是vue2 vue3同理 在 App.vue 添加 入口处直接修改 #app { // 定义的全局修改颜色变量--themeColor:#008cff; } // 组件某些背景颜色需要跟着一起改变,其他也是同理 /deep/ .ant-btn-primar…

响应式修改 页面字体字号【大 中 小 】

浅浅记录下&#xff0c;工作中遇到的问题&#xff0c;修改页面文本字号。 <p class"change_fontSize">[ 字号 <a href"javascript:doZoom(18)">大</a><a href"javascript:doZoom(16)">中</a><a href"ja…

一、词类和句子

1、词类 1&#xff09;名词&#xff08;n.&#xff09;&#xff1a; 表示人、事物、地点或抽象概念的名称。如&#xff1a;boy, morning, bag, ball, class,orange. 2&#xff09;代词&#xff08;pron.&#xff09;&#xff1a; 主要用来代替名词。如&#xff1a;who, she, yo…