1 static void Main(string[] args)2 {3 int errorCount = 0;//计算爬取失败的次数

4 int count = 450;//结束范围

5 for (int i = 401; i <= count; i++)6 {7 Thread.Sleep(2000);//每隔两秒爬取一次,不要给服务器压力

8 try

9 {10 HtmlWeb web = newHtmlWeb();11 //https://maoyan.com/films/1

12 web.OverrideEncoding =Encoding.UTF8;13 HtmlDocument doc = web.Load($"https://maoyan.com/films/{i}");//把url中的1替换为i

14

15 HtmlDocument htmlDoc = newHtmlDocument();16 string url = $"https://maoyan.com/films/{i}";17

18 //获取电影名

19 HtmlNode MovieTitle = doc.DocumentNode.SelectSingleNode("//div[@class=‘movie-brief-container‘]/h1[@class=‘name‘]");//分析页面结构后得到的div20 if (MovieTitle == null)//如果是null,那么表明进入验证页面了,执行第二种方法

21 {22 string urlResponse =URLRequest(url);23 htmlDoc.LoadHtml(urlResponse);24 MovieTitle = htmlDoc.DocumentNode.SelectSingleNode("//div[@class=‘movie-brief-container‘]/h1[@class=‘name‘]");25 if (MovieTitle == null)//如果是null,那么表明进入验证页面了。(第二种方法也失效)

26 {27                   //此处需要进入浏览器手动完成验证 或者 自行分析验证页面实现自动验证

28 }29 }30 string title =MovieTitle.InnerText;31 //Console.WriteLine(MovieTitle.InnerText);32

33 //获取电影海报

34 HtmlNode MovieImgSrc = doc.DocumentNode.SelectSingleNode("//div[@class=‘celeInfo-left‘]/div[@class=‘avatar-shadow‘]/img[@class=‘avatar‘]");35 if (MovieImgSrc == null)36 {37

38 MovieImgSrc = htmlDoc.DocumentNode.SelectSingleNode("//div[@class=‘celeInfo-left‘]/div[@class=‘avatar-shadow‘]/img[@class=‘avatar‘]");39 }40 //Console.WriteLine(MovieImgSrc.GetAttributeValue("src", ""));

41 string imgurl = MovieImgSrc.GetAttributeValue("src", "");42

43 //电影类型

44 HtmlNodeCollection MovieTypes = doc.DocumentNode.SelectNodes("//div[@class=‘movie-brief-container‘]/ul/li[@class=‘ellipsis‘]");45 if (MovieTypes == null)46 {47 MovieTypes = htmlDoc.DocumentNode.SelectNodes("//div[@class=‘movie-brief-container‘]/ul/li[@class=‘ellipsis‘]");48 }49 string types = "", artime = "", releasetime = "";50

51 foreach (var item in MovieTypes[0].ChildNodes)52 {53 if (item.InnerText.Trim() != "")54 {55 //Console.WriteLine(item.InnerText.Trim());

56 types += item.InnerText.Trim() + "-";57 }58 }59 artime = MovieTypes[1].InnerText;60 releasetime = MovieTypes[2].InnerText;61 //Console.WriteLine(MovieTypes[i].InnerText);62

63 //剧情简介

64 string intro = "";65 HtmlNode introduction = doc.DocumentNode.SelectSingleNode("//div[@class=‘mod-content‘]/span[@class=‘dra‘]");66 if (introduction == null)67 {68 introduction = htmlDoc.DocumentNode.SelectSingleNode("//div[@class=‘mod-content‘]/span[@class=‘dra‘]");69 }70 //Console.WriteLine(introduction.InnerText);

71 intro =introduction.InnerText;72 //Console.WriteLine(i);

73

74 using (FileStream fs = new FileStream(@"d:Sql.txt", FileMode.Append, FileAccess.Write))75 {76 fs.Lock(0, fs.Length);77 StreamWriter sw = newStreamWriter(fs);78 sw.WriteLine($"INSERT INTO Movies VALUES(‘{title}‘,‘{imgurl}‘,‘{types}‘,‘{artime}‘,‘{releasetime}‘,‘{intro.Trim()}‘);");79 fs.Unlock(0, fs.Length);//一定要用在Flush()方法以前,否则抛出异常。

80 sw.Flush();81 }82

83 }84 catch(Exception ex)85 {86 errorCount++;87 Console.WriteLine(ex);88 }89 }90 Console.WriteLine($"结束 成功:{count - errorCount}条,失败:{errorCount}条");91 Console.ReadLine();92

93 }

猫眼api html,爬取猫眼电影数据(示例代码)相关推荐

  1. python实现爬虫探探_全栈 - 9 实战 爬取豆瓣电影数据

    这是全栈数据工程师养成攻略系列教程的第九期:9 实战 爬取豆瓣电影数据. 掌握了爬虫的基本原理和代码实现,现在让我们通过实战项目巩固一下. 确定目标 在写爬虫之前应当想清楚:我需要哪方面的数据?需要包 ...

  2. Java爬取豆瓣电影数据

    所用到的技术有Jsoup,HttpClient. Jsoup jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CS ...

  3. Github API:爬取Github用户数据

    Github API:爬取Github用户数据 引言 目标:根据给定的论文中中文作者的英文名字(实际上就是拼音),从Github上获取用户邮箱信息. 一.Github API介绍 详细的开发者文档 想 ...

  4. python代码示例下载-python爬取音频下载的示例代码

    抓取"xmly"鬼故事音频 import json # 在这个url,音频链接为JSON动态生成,所以用到了json模块 import requests headers = { & ...

  5. python爬虫公众号音频源代码_python爬取音频下载的示例代码

    抓取"xmly"鬼故事音频 import json # 在这个url,音频链接为JSON动态生成,所以用到了json模块 import requests headers = { & ...

  6. python爬取猫眼_python正则表达式爬取猫眼电影top100

    用正则表达式爬取猫眼电影top100,具体内容如下 #!/usr/bin/python # -*- coding: utf-8 -*- import json # 快速导入此模块:鼠标先点到要导入的函 ...

  7. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  8. python爬取百部电影数据,我分析出了一个残酷的真相

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  9. python交通调查数据处理_Python突破高德API限制爬取交通态势数据+GIS可视化(超详细)...

    一.需求: 爬取高德的交通态势API,将数据可视化为含有交通态势信息的矢量路网数据. 二.使用的工具: Python IDLE.记事本编辑器.ArcGIS 10.2.申请的高德开发者KEY(免费). ...

最新文章

  1. leetcode--链表的设计--python
  2. SAP Hybris: 中国B2B电商转型势在必行
  3. C#网络类智能开关控制板实例
  4. Keras框架:人脸检测-mtcnn思想及代码
  5. method java_解析Java中的Field类和Method类
  6. 设计几个简单的汇编函数
  7. 这个假期,百度差一点点点重回巅峰
  8. Discuz2.5菜鸟解析-2
  9. 天线分类特征学习笔记(1)偶极子天线
  10. 分享一篇关于代理IP对于python爬虫有多重要
  11. 1、Dreamweaver工具的使用
  12. Python员工离职数据分析
  13. 一键修复wpcap.dll文件丢失或出错
  14. 转 信安之路 CTF初识与深入
  15. linux里 read函数用法
  16. Java中的length,length()和size()
  17. 4篇cvpr2021 轨迹预测论文
  18. Jenkins 环境变量的作用范围及设置与获取,包括在Sharedlibraries与pipelin之间的传递
  19. 铸造国之重器 华为云正为“数字中国”战略提供哪些有力支撑?
  20. MATLAB程序设计与应用刘卫国(第三版)课后实验答案——3

热门文章

  1. 我所见的沈阳世界园艺博览会
  2. C语言用函数求圆的面积和周长,用C语言:编写两个函数,分别计算圆的面积和周长,要求在主函数中输入半径,调用函数进行计算,主函数中...
  3. Spring-day01
  4. 基于51单片机的大棚环境土壤湿度光强监测系统proteus仿真原理图PCB
  5. 使用pytorch搭建自己的网络之Res2Net
  6. 我是谁?小米上市坎途的身份困惑
  7. 微领地商业模式开发 软件开发
  8. 记2020年第十一届蓝桥杯感想
  9. java游戏武状元苏乞儿_武状元苏乞儿演员表
  10. 基于深度神经网络的火灾探测声学灭火器控制