我的编程空间,编程开发者的网络收藏夹
学习永远不晚

c#如何爬取优酷电影信息

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

c#如何爬取优酷电影信息

这篇文章将为大家详细讲解有关c#如何爬取优酷电影信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

爬虫步骤

  • 加载页面

  • 解析数据

  • 保存数据

继第一篇文档后的爬虫进阶,本文章主要是对上一篇的进阶。实现的功能主要为:
1、爬取电影类别列表
2、循环每个类别的电影信息,对每个类别的信息分页爬取
3、爬取的数据保存到数据库中

一、爬取电影类别列表

c#如何爬取优酷电影信息

使用Chrome浏览器,F12,找到当前位置,得到当前位置的Xpath。我们需要的数据是电影的类别编码和电影类别名称。

规则分析:
XPATH路径为 "//*[@id='filterPanel']/div/ul/li/a")
类别编码为A标签Href路径的内容,我们对其进行截取
类别名称为A标签InnerTest,我们对其进行截取

代码示例

  //加载web内容   private static readonly string _url = "http://list.youku.com/category/video/c_0.html";  /// <summary>  ///  得到所有的类别  /// </summary>  public static List<VideoType> GetVideoTypes()  {   //加载web内容   var web = new HtmlWeb();   var doc = web.Load(_url);   //内容解析-获得所有的类别   var allTypes = doc.DocumentNode.SelectNodes("//*[@id='filterPanel']/div/ul/li/a").ToList();   //类别列表中去掉【全部】这个选项   var typeResults = allTypes.Where((u, i) => { return i > 0; }).ToList();   var reList = new List<VideoType>();   foreach (var node in typeResults)   {    var href = node.Attributes["href"].Value;    reList.Add(new VideoType    {     Code = href.Substring(href.LastIndexOf("/") + 1, href.LastIndexOf(".") - href.LastIndexOf("/") - 1),     Name = node.InnerText    });   }   return reList;  }

二、爬取每个类别的总分页数

code 为电影类别编码
页面规则 $"http://list.youku.com/category/show/[code].html"
根据页面规则进行爬取:

  /// <summary>  ///  得到当前类别的总页数  /// </summary>  public static int GetPageCountByCode(string code)  {   var web = new HtmlWeb();   var doc = web.Load($"http://list.youku.com/category/show/[code].html");   //分页列表   var pageList = doc.DocumentNode.CssSelect(".yk-pages li").ToList();   //得到倒数第二项   var lastsecond = pageList[pageList.Count - 2];   return Convert.ToInt32(lastsecond.InnerText);  }

三、按照页码得到每个电影类别的内容

根据分页规则分析出分页后的地址为
code 为编码 pageIndex为第几页
页面规则:http://list.youku.com/category/show/[code]s_1_d_1_p{pageIndex}.html
根据页面规则进行爬取:

 /// <summary>  ///  得到当前类别的内容  /// </summary>  public static List<VideoContent> GetContentsByCode(string code, int pageIndex)  {   var web = new HtmlWeb();   var doc = web.Load($"http://list.youku.com/category/show/[code]_s_1_d_1_p_{pageIndex}.html");   var returnLi = new List<VideoContent>();   var contents = doc.DocumentNode.CssSelect(".yk-col4").ToList();   foreach (var node in contents)    returnLi.Add(new VideoContent    {     PageIndex = pageIndex.ToString(),     Code = code,     Title = node.CssSelect(".info-list .title a").FirstOrDefault()?.InnerText,     Hits = node.CssSelect(".info-list li").LastOrDefault()?.InnerText,     Href = node.CssSelect(".info-list .title a").FirstOrDefault()?.Attributes["href"].Value,     ImgHref = node.CssSelect(".p-thumb img").FirstOrDefault()?.Attributes["class="lazy" data-src"].Value    });   return returnLi;  }

四、测试爬取的结果

  /// <summary>  ///  打印得到的内容  /// </summary>  public static void PrintContent()  {   var count = 0;   foreach (var node in GetVideoTypes())   {    var resultLi = new List<VideoContent>();    //得到当前类别总分页数    var pageCount = GetPageCountByCode(node.Code);    //遍历分页得到内容    for (var i = 1; i <= pageCount; i++) resultLi.AddRange(GetContentsByCode(node.Code, i));    Console.WriteLine($"编码{node.Code} \t 页数{pageCount} \t 总个数{resultLi.Count}");    count += resultLi.Count;   }   Console.WriteLine($"总个数为{count}");  }

关于“c#如何爬取优酷电影信息”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

c#如何爬取优酷电影信息

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c#如何爬取优酷电影信息

这篇文章将为大家详细讲解有关c#如何爬取优酷电影信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。爬虫步骤加载页面解析数据保存数据继第一篇文档后的爬虫进阶,本文章主要是对上一篇的进阶。实现的功能主要为:1
2023-06-06

爬取豆瓣电影信息

昨天写了一个小爬虫,爬取了豆瓣上2017年中国大陆的电影信息,网址为豆瓣选影视,爬取了电影的名称、导演、编剧、主演、类型、上映时间、片长、评分和链接,并保存到MongoDB中。一开始用的本机的IP地址,没用代理IP,请求了十几个网页之后就收
2023-01-30

怎么用Python爬取2022春节档电影信息

这篇文章将为大家详细讲解有关怎么用Python爬取2022春节档电影信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实验环境Python 3.x (面向对象的高级语言)Resquest 2.14.2 (
2023-06-29

node.js如何爬取在线电瓶车信息

本文小编为大家详细介绍“node.js如何爬取在线电瓶车信息”,内容详细,步骤清晰,细节处理妥当,希望这篇“node.js如何爬取在线电瓶车信息”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。步骤第一步,引入需要的
2023-07-04

Python如何通过xpath属性爬取豆瓣热映的电影信息

本篇文章给大家分享的是有关Python如何通过xpath属性爬取豆瓣热映的电影信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言声明一下:本文主要是研究使用,没有别的用途。
2023-06-25

如何使用Python爬虫实现抓取电影网站信息并入库

这篇文章主要介绍如何使用Python爬虫实现抓取电影网站信息并入库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.环境搭建1.下载安装包访问 Python官网下载地址:https://www.python.org/
2023-06-29

如何使用node.js爬取在线电瓶车信息

本篇内容介绍了“如何使用node.js爬取在线电瓶车信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!步骤第一步,引入需要的库var che
2023-07-04

python如何爬取时光网电影TOP100

这篇文章将为大家详细讲解有关python如何爬取时光网电影TOP100,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。相信大家在各种看到的都是爬取猫眼,豆瓣电影排行榜TOP100的案例,下面为
2023-06-02

node.js如何爬取中关村的在线电瓶车信息

这篇文章主要介绍“node.js如何爬取中关村的在线电瓶车信息”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node.js如何爬取中关村的在线电瓶车信息”文章能帮助大家解决问题。步骤第一步,引入需要
2023-06-17

python如何爬取豆瓣电影TOP250数据

这篇文章将为大家详细讲解有关python如何爬取豆瓣电影TOP250数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在执行程序前,先在MySQL中创建一个数据库"pachong"。import pymy
2023-06-15

java爬虫如何爬取猫眼电影TOP榜数据

这篇文章给大家分享的是有关java爬虫如何爬取猫眼电影TOP榜数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。爬虫是如何爬取猫眼电影TOP榜数据的。主要抓取的内容有排名、图片、电影名称、主演、上映时间和评分信息
2023-06-02

bs4爬虫实战三:获取电影信息并存入mysql数据库

目标分析这次爬虫的目标网站是:http://dianying.2345.com,爬虫的搜索目标仅限于今年的电影,在网站打开搜索,在年代中选择2018 获取页面的过程在页面的下方单击"下一页",发现URL变成了http://dianying.
2023-01-30

Python如何爬取某宝男装信息

本篇内容介绍了“Python如何爬取某宝男装信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现步骤1. 分析目标网站1. 打开某宝首页,
2023-06-21

Python如何爬取b站番剧信息

Python如何爬取b站番剧信息,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。相信很多人都是B站的粉丝吧?因为确实是一个类目都比较齐全的网站,还有各种各样的新番,这是其他网站没
2023-06-02

如何使用python爬虫爬取大学排名信息

这篇文章将为大家详细讲解有关如何使用python爬虫爬取大学排名信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。2. 这次爬取的网址请搜索“阿凡题”(纯技术讨论)“阿凡题”(纯技术讨论)3. 在该网址选
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录