使用selenium爬取猫眼电影榜单数据

2025-12-13 0 206

前言
使用selenium爬取猫眼电影榜单数据

近年来,随着互联网的快速发展和人们对电影需求的增加,电影市场也变得日趋繁荣。作为观众或者投资者,我们时常需要了解最新的电影排行榜和票房情况。本文将介绍如何使用Python编写一个爬虫脚本,通过Selenium库自动化操作浏览器,爬取猫眼电影榜单数据,并保存为Excel文件。

导入所需的库:
使用selenium爬取猫眼电影榜单数据

import time:导入时间模块,用于添加延时等待。
from selenium import webdriver:导入Selenium库中的webdriver模块,用于创建浏览器实例和自动化操作。
from selenium.webdriver.common.by import By:导入Selenium库中的By模块,用于XPath定位元素。
import pandas as pd:导入pandas库,用于处理和分析数据。
设置ChromeDriver的路径,并创建一个Chrome浏览器实例:
使用selenium爬取猫眼电影榜单数据

driver_path = \’ChromeDriver的路径\’
driver = webdriver.Chrome(driver_path)

打开目标网页,这里以猫眼电影榜单页面为例:
使用selenium爬取猫眼电影榜单数据

url = \’https://www.maoyan.com/board?timeStamp=1688716544141&sVersion=1&webdriver=false&index=3&signKey=44a722f975ab0b6750812bd0bf340b88&channelId=40011&requestCode=49793531118b4af79a95958d845ab0a7lgmud\’
driver.get(url)
time.sleep(5)

使用XPath定位电影信息。通过查看网页源代码,发现电影信息所在的<dd>标签具有唯一的class属性名:
使用selenium爬取猫眼电影榜单数据

info = driver.find_element(By.CLASS_NAME, \”board-wrapper\”)
ddlist = info.find_elements(By.TAG_NAME, \”dd\”)

遍历所有的<dd>标签,获取电影名称、导演和评分,并将数据保存到DataFrame中:
data = pd.DataFrame(columns=[\’电影名称\’, \’导演\’, \’评分\’])
i = 0
for item in ddlist:
titles = item.find_element(By.CLASS_NAME, \”board-item-main\”).find_element(By.CLASS_NAME, \”name\”).text
directors = item.find_element(By.CLASS_NAME, \”star\”).text
scores = item.find_element(By.CLASS_NAME, \”releasetime\”).text
data.loc[i] = [titles, directors, scores]
i += 1
print(f\”电影名称:{titles},导演:{directors},评分:{scores}\”)

将DataFrame导出为Excel文件:
output_path = \’猫眼.xlsx\’
data.to_excel(output_path, index=False)

关闭浏览器:
driver.quit()

通过以上代码,我们成功实现了使用Python爬取猫眼电影榜单数据的功能。

完整代码
使用selenium爬取猫眼电影榜单数据

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd

# 设置ChromeDriver的路径
driver_path = \’\’

# 创建Chrome浏览器实例
driver = webdriver.Chrome(driver_path)

# 打开目标网页
url = \’https://www.maoyan.com/board?timeStamp=1688716544141&sVersion=1&webdriver=false&index=3&signKey=44a722f975ab0b6750812bd0bf340b88&channelId=40011&requestCode=49793531118b4af79a95958d845ab0a7lgmud\’
driver.get(url)
time.sleep(5)
# 使用XPath定位电影信息
info = driver.find_element(By.CLASS_NAME, \”board-wrapper\”)
ddlist = info.find_elements(By.TAG_NAME, \”dd\”)
# print(ddlist)
data = pd.DataFrame(columns=[\’电影名称\’, \’导演\’, \’评分\’])
i = 0
for item in ddlist:
# print(item)
# 获取所有电影信息
titles = item.find_element(By.CLASS_NAME, \”board-item-main\”).find_element(By.CLASS_NAME, \”name\”).text
directors = item.find_element(By.CLASS_NAME, \”star\”).text
scores = item.find_element(By.CLASS_NAME, \”releasetime\”).text
data.loc[i] = [titles, directors, scores]
i += 1
print(f\”titles{titles}, directors{directors} , scores{scores}\”)

# # 将DataFrame导出为Excel文件
output_path = \’猫眼.xlsx\’
data.to_excel(output_path, index=False)
#
# # 关闭浏览器
driver.quit()

分点说明
import time:导入时间模块,用于添加延时等待。

from selenium import webdriver:导入Selenium库中的webdriver模块,用于创建浏览器实例和自动化操作。

from selenium.webdriver.common.by import By:导入Selenium库中的By模块,用于XPath定位元素。

import pandas as pd:导入pandas库,用于处理和分析数据。

driver_path = \’\’:设置ChromeDriver的路径,填写你的ChromeDriver路径。

driver = webdriver.Chrome(driver_path):创建一个Chrome浏览器实例。

url = \’https://www.maoyan.com/board?timeStamp=1688716544141&sVersion=1&webdriver=false&index=3&signKey=44a722f975ab0b6750812bd0bf340b88&channelId=40011&requestCode=49793531118b4af79a95958d845ab0a7lgmud\’:目标网页的URL。

driver.get(url):打开目标网页。

time.sleep(5):等待5秒,确保页面加载完成。

info = driver.find_element(By.CLASS_NAME, \”board-wrapper\”):使用By.CLASS_NAME通过class名称定位电影信息所在的元素。

ddlist = info.find_elements(By.TAG_NAME, \”dd\”):使用By.TAG_NAME通过标签名称定位所有电影信息所在的元素。

data = pd.DataFrame(columns=[\’电影名称\’, \’导演\’, \’评分\’]):创建一个空的DataFrame,用于存储电影数据,并指定列名。

i = 0:设置索引变量i。

for item in ddlist::遍历所有电影信息。

titles = item.find_element(By.CLASS_NAME, \”board-item-main\”).find_element(By.CLASS_NAME, \”name\”).text:通过XPath定位电影名称,并使用.text获取文本内容。

directors = item.find_element(By.CLASS_NAME, \”star\”).text:通过XPath定位导演信息,并使用.text获取文本内容。

scores = item.find_element(By.CLASS_NAME, \”releasetime\”).text:通过XPath定位评分信息,并使用.text获取文本内容。

data.loc[i] = [titles, directors, scores]:将电影名称、导演和评分添加到DataFrame中的一行。

i += 1:索引自增1。

print(f\”titles{titles}, directors{directors} , scores{scores}\”):打印每部电影的名称、导演和评分。

output_path = \’猫眼.xlsx\’:指定输出Excel文件的路径。

data.to_excel(output_path, index=False):将DataFrame保存为Excel文件,不包含索引列。

driver.quit():关闭浏览器。

完结
点赞加关注下个代码有帮助

————————————————
版权声明:本文为CSDN博主「全栈若城」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33681891/article/details/131602038

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 使用selenium爬取猫眼电影榜单数据 https://www.zuozi.net/36399.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务