bexcel

import requests
from lxml import etree
from time import sleep
import numpy as np
from openpyxl import Workbook
# 进行UA伪装
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.41'}
# 定义空列表存放电影数据
titles_cn = []  # 中文标题
titles_en = []  # 英文标题
links = []  # 详情页链接
director = []  # 导演
actors = []  # 演员
years = []  # 上映年份
nations = []  # 国籍
types = []  # 类型
scores = []  # 评分
rating_nums = []  # 评分人数
# 创建一个Workbook对象
wb = Workbook()
# 激活当前工作表
ws = wb.active
# 写入表头
ws.append(['电影中文名', '电影英文名', '电影详情页链接', '导演', '演员', '上映年份', '国籍', '类型', '评分', '评分人数'])
for i in range(0, 226, 25):url = f'https://movie.douban.com/top250?start={i}&filter='response = requests.get(url, headers=headers)sleep(1)html = response.textdata = etree.HTML(html)li_list = data.xpath('//*[@id="content"]/div/div[1]/ol/li')for each in li_list:title1 = each.xpath('./div/div[2]/div[1]/a/span[1]/text()')[0]titles_cn.append(title1)title2 = each.xpath('./div/div[2]/div[1]/a/span[2]/text()')[0].strip('\xa0/\xa0')titles_en.append(title2)link = each.xpath('./div/div[2]/div[1]/a/@href')[0]links.append(link)info1 = each.xpath('./div/div[2]/div[2]/p[1]/text()[1]')[0].strip()split_info1 = info1.split('\xa0\xa0\xa0')dirt = split_info1[0].strip('导演: ')director.append(dirt)if len(split_info1) == 2:ac = split_info1[1].strip('主演: ')actors.append(ac)else:actors.append(np.nan)info2 = each.xpath('./div/div[2]/div[2]/p[1]/text()[2]')[0].strip()split_info2 = info2.split('\xa0/\xa0')year = split_info2[0]nation = split_info2[1]ftype = split_info2[2]years.append(year)nations.append(nation)types.append(ftype)score = each.xpath('./div/div[2]/div[2]/div/span[2]/text()')[0]scores.append(score)num = each.xpath('./div/div[2]/div[2]/div/span[4]/text()')[0].strip('人评价')rating_nums.append(num)ws.append([title1, title2, link, dirt, ac, year, nation, ftype, score, num])print(f'————————————第{int((i / 25) + 1)}页爬取完毕!——————————————')
# 保存工作簿
wb.save('data.xlsx')
print('——————————————————————————————————爬虫结束!!!!!————————————————————————————————————————————————')

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

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

相关文章

QT QString字符串去除空白方法

空白包括 \t’, ‘\n’, ‘\v’, ‘\f’, ‘\r’, ’ ’ 1.去除字符串前面的空格 QString str1 " 1 2 3 "; str1.remove(QRegExp("^ \\s*")); //结果:“1 2 3”2.去除字符串后面的空格 QString str2 " 4 5 6 ";str2.remove(QRegE…

架构设计-用户信息及用户相关的密码信息设计

将用户的基本信息和用户密码存放在不同的数据库表中是一种常见的安全做法,这种做法旨在增强数据的安全性和管理的灵活性。以下是这种做法的几个关键原因: 安全性增强: 当用户密码被单独存放在一个表中时,可以使用更强大的加密和哈…

计算机毕业设计 | SpringBoot+vue的教务管理系统

1,绪论 1.1 项目背景 在这个资讯高度发展的时代,资讯管理变革已经是一个更为宽泛、更为全面的潮流。为了保证中国的可持续发展,随着信息化技术的不断进步,教务管理体系也在不断完善。与此同时,伴随着信息化的飞速发展…

Android:UI:Drawable:View/ImageView与Drawable

文章目录 在View/ImageVIew中显示DrawableDrawable对View的更新操作在View/ImageVIew中显示Drawable API View.setBackground(Drawable) ImageView.setImagDrawable(Drawable) 源码分析 View.mBackground在View.draw(Canvas)中绘制,调用Drawable.draw(Canvas) ImageView.m…

Hexapod C-887 使用手册 -- 1

最近要做PI C-887的集成控制,先把使用手册看一便,在此记录阅读进度。 本人微信号,如果有项目合作,可以加本人微信。 1 有关此文档 在本章中 本用户手册的目标和目标群体 符号和打印规则 图 术语的定义 其它适用文件 下载手…

Python GUI 库跨平台兼容问题及解决方案

在选择 Python GUI 库时,跨平台兼容性是一个重要的考虑因素。不同的 GUI 库可能在不同的操作系统上表现不同,因此需要选择一个能够在多个平台上运行良好的库。如果我们遇到下面的问题,可以尝试下我整理的方法。 1、问题背景 Python 作为一门…

基于【Lama Cleaner】一键秒去水印,轻松移除不想要的内容!

一、项目背景 革命性的AI图像编辑技术,让您的图片焕然一新!无论水印、logo、不想要的人物或物体,都能被神奇地移除,只留下纯净的画面。操作简单,效果出众,给你全新的视觉体验。开启图像编辑新纪元,尽在掌控! 利用去水印开源工具Lama Cleaner对照片中"杂质"进行去除…

【Vue】获取模块内的actions方法

目标: 掌握模块中 action 的调用语法 (同理 - 直接类比 mutation 即可) 注意: 默认模块中的 mutation 和 actions 会被挂载到全局,需要开启命名空间,才会挂载到子模块。 调用语法: 直接通过 store 调用 $store.di…

【Go语言】面向对象编程(一):类的定义、初始化和成员方法

面向对象编程(一):类的定义、初始化和成员方法 1 类的定义和初始化 Go 语言的面向对象编程没有 class 、 extends 、implements 之类的关键字和相应的概念,而是借助结构体来实现类的声明,如下是定义一个学生类的方法…

Virtual Memory Primitives for User Program翻译

Virtual Memory Primitives for User Program 安德鲁阿普尔(Andrew Appel)和李凯(Kai Li) 普林斯顿大学计算机科学系 摘要 传统上,内存管理单元(MMUS)被操作系统用于实现磁盘分页的虚拟内存…

Element ui 快速入门

Element UI 是一套基于 Vue.js 的桌面端组件库,它提供了一系列易用、美观、高度可定制的组件,可以帮助开发者快速构建出优秀的用户界面。 以下是 Element UI 的快速入门步骤: 安装 Element UI:在项目中使用 npm 或者 yarn 安装 …

FullCalendar日历组件集成实战(9)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…

一文详谈大模型 RAG 优化方案与实践

暑期实习基本结束了,校招即将开启。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。提前准备才是完全之策。 最近,我们又陆续整理了很多大厂的面试题&#xff0c…

肾合与出汗:一场你不得不关注的健康对话

设想一下,我们的身体就像是一部精妙复杂的交响乐,每一个细胞、每一个组织都是乐符,共同编织出生命的旋律,演绎着我们的过去与未来。而汗水,就如同交响乐中的琴弦振动,它流淌在我们的体表,记录着…

wordpress站群搭建1需求分析

海鸥技术下午茶-wordpress站群搭建1需求分析 站群是什么 站群,即一个人或一个团队操作多个网站,目的是通过搜索引擎获得大量流量,或者是将链接指向同一个网站,以提高搜索排名。 站群包括哪些功能 站点管理 内容管理 数据统计和分…

电商API接口接入||电商比价项目比价系统搭建需要注意哪些?

在搭建一个淘宝/京东比价系统时,需要注意以下几个方面,以确保系统的有效性、准确性和用户友好性: 确定平台和商品范围: 明确系统覆盖的电商平台,如淘宝、京东等。确定要比较的商品类别和范围,以确保数据的…

APIGateway 私有API的VPC endpoint是否开启DNS有什么区别

APIGateway 私有API的VPC endpoint是否开启DNS有什么区别 未启用私有DNS 从vpc内访问APIGateway regional api(非私有API)不受影响,会将APIGateway的解析为公有IP $ curl https://region-app-id.execute-api.cn-north-1.amazonaws.com.cn/de…

JFinal学习06 控制器——getPara()接收数据

JFinal学习06 控制器——getPara()接收数据 视频来源https://www.bilibili.com/video/BV1Bt411H7J9/?spm_id_from333.337.search-card.all.click 文章目录 JFinal学习06 控制器——getPara()接收数据零、JFinal数据提交的三种方式一、get提交二、post提交三、url参数化提交四、…

【设计模式之外观模式 -- C++】

外观模式 – 统一接口,简化调用 外观模式(Facade Pattern)是一种常用的软件设计模式,它为子系统中的一组接口提供了一个统一的高层接口,使得子系统更易于使用。外观模式定义了一个高层接口,这个接口使得这…