爬取猫眼即将上映电影信息(下)

发布时间:2026-02-28 05:04

为朋友预告即将上映的电影,满足他们的好奇心。 #生活乐趣# #日常生活趣事# #读书分享乐趣# #电影剧透与讨论#

爬取猫眼即将上映电影信息(下)

「这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战」

前言

大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。

代码中用到的库和方法如果不了解的可以参考:

爬取猫眼即将上映电影信息(上)

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

本文主要介绍爬取猫眼即将上映电影信息的主要代码和遇到的一些问题和解决方案。

1. 具体代码实现

 from bs4 import BeautifulSoup  from selenium import webdriver  import pandas as pd  ​  movie_name = [] # 电影的名字  actor_name = [] # 演员的名字  release_time = [] # 上映时间  synopsis = [] # 剧情简介  movie_url = [] # 电影链接  # 使用selenium库获取真实浏览器驱动  driver = webdriver.Firefox()  ​  ​  def get_html(url):     driver.get(url)     return driver  ​  ​  # 使用浏览器驱动模拟真实浏览器行为,获取动态的真实的url  def parse_html():     soup = BeautifulSoup(driver.page_source, "lxml") # 创建BeautifulSoup对象  ​     for div in soup.find_all("div", class_="movie-item film-channel"):         a = div.find("a").attrs['href']         url = "https://www.maoyan.com" + a         movie_url.append(url)         get_info(url)  ​  ​  def get_info(url):     driver.get(url) # 获取网页text     soup = BeautifulSoup(driver.page_source, "lxml") # 创建BeautifulSoup对象     # 爬取电影的名字,     movie_name.append(soup.find("h1").string)     # 爬取主演的名字,多个主演用”,“连接成字符串当成一个整体     div = soup.find(class_="celebrity-container clearfix")     name = []     for li in div.find_all("li", class_='celebrity actor'):         s = li.find(class_="name").string         s = s.strip()         name.append(s)     str_name = ",".join(name)     actor_name.append(str_name)     # 爬取上映时间     lis = soup.find_all("li", class_="ellipsis")     release_time.append(lis[2].string.strip())     # 爬取剧情简介     span = soup.find(class_="dra")     synopsis.append(span.string.strip().replace("\n",""))  ​  ​  # 把爬取的内容使用pandas库写入csv文件  def write_csv(filename):     dict = {'电影名称': movie_name, '主演': actor_name, "上映时间": release_time, "电影链接": movie_url, "剧情简介": synopsis}     dataframe = pd.DataFrame(dict)     dataframe.to_csv(filename, mode="a", encoding="utf_8_sig")  ​  ​  def main():     i = 0     for i in range(3):         # 爬取的具体网页         # https://www.maoyan.com/films?showType=2&sortId=1 按照热度排序         # https://www.maoyan.com/films?showType=2&sortId=2 按照上映时间排序         # 根据爬取的内容来更改url         url = "https://www.maoyan.com/films?showType=2&sortId=1&offset="         num = i * 30         url += url + str(num)         get_html(url)         parse_html()     # 直接输入文件名即可,以csv结尾     filename = input()     write_csv(filename)  ​  ​  main()

2. 遇到的的问题

问题及解决方案:

问题1:使用requests进行爬取,爬取10个左右就被猫眼反扒机制限制。 解决方案1:使用多个user-agrent和cookies,进行爬取,失败!!! 解决方案2:使用Selenium模拟真实浏览器动态获取真实URL 问题2:爬取具体想看人数失败。猫眼的数字使用动态字体进行加密,源码中不能获取真实数字。 解决方案:暂无 问题3:爬取到的某些数据显示在csv中,可读性较差。 解决方案:对爬取到的数据进行逐个格式处理后再写入文件。 问题4:爬取过程中有时会遇到滑动块验证的问题导致爬取中断。 解决方案:手动验证,关闭浏览器,重新爬取。

结语

以上就是爬取猫眼电影网站上的即将上映的电影信息及保存为csv文件的思想和具体代码。希望对读者有所帮助,如果感觉有用,欢迎点赞关注,我们互相学习进步。

标签:

网址:爬取猫眼即将上映电影信息(下) https://klqsh.com/news/view/344937

相关内容

猫眼专业版如何查看电影上映天数
即将上映电影
电影的新片上映信息及期待
即将上映的电影有哪些?影迷必看影讯一览!
Python爬取豆瓣电影Top250[项目源码]
2024年即将上映的所有漫威电影&电视剧
影院即将上映电影预告片大全
python 爬取电影评论
豆瓣即将上映的电影
2023年首映!即将上映的10部热门电影全攻略

随便看看