新闻中心

网络爬虫干货项目实战制作新闻采集器

  本系列将由浅入深给大家介绍网络爬虫,一步一步教大家学会怎么分析请求,抓取数据,到项目实战,真正意义上爬取一切你想要的!

  上一篇文章我们介绍了新闻内容的获取,结合前两篇文章,我们可以总结一下新闻爬虫的大体流程,包括请求分析,参数分析和文章内容获取,那么接下来就是要把这些流程思路串联起来,转换成实实在在的代码或者工具,才能真正成为自己的东西。

  我们已经拿到了请求地址和关键请求参数“page”和“num”,那么我们可自定义这两个参数,动态配置,做成一个可配置化的新闻采集器,接下来还会加上定时采集功能,废话不多说,小伙伴们请往下看。

  了解过C#语言的小伙伴一定对VS很熟悉了,VS即Microsoft Visual Studio的简称,号称全宇宙第一IDE,我个人还是比较佩服这个编码器的。项目使用的是Enterprise 2017版本,需要的小伙伴可以自行在MSDN上下载,这里不做过多介绍。

  项目是采用Winfrom形式搭建,Framework 4.6版本,之所以使用Winform,是因为开发起来快速简便,非常适合写一些小工具,爬虫之类的软件,虽然UI上面不太美观,但好在功能都还强大,用起来也得心应手,大神们请随意玩转WPF,或者一些第三方UI组件。

  虽然是小项目,但也涉及分层概念,提取出来了一个公共类库,方面以后项目中使用,可自定义采集间隔,采集页数,开始/停止采集,平均目录分配,实时控制台日志输出等。

  项目中涉及到了一些知识点,这里结合代码做了一个简单的介绍,其实我在写文章的同时,也是在不断提高自己,希望给新入行的友人一个参考,和大神们交流沟通,是作者最大的期望。

  1、定时器,通俗点讲就是每隔一段时间执行程序,项目中采用的是System命名空间下的System.Timers.Timer,目的在于定时去采集,当然定时器不止一种实现方式,比较成熟的我所熟知的有一个任务调度框架“Quartz”,感兴趣的小伙伴可以去了解一下,大神请自动忽略。

  2、锁,项目中所用到的锁,是为多线程并发所设定的,用在显示控制台日志上,一个标准的锁的声明:private static object _lock = new object();关于锁的知识点很多,这里不做详细介绍,只针对项目而言。

  3、多线程,所谓多线程,我的理解是除了UI线程,其余的所有子线程都可以统称为多线程,因为UI线程是主线程,页面上所有的控件操作也只能用主线程来完成。其目的可以使用一句话概括“空间换时间”,所谓空间,指的是电脑性能参数,CPU,内存等,即消耗一定量的电脑性能来达到缩短程序运行时间的目的。

  本项目中未采用多线程,原因有二,其一,获取新闻速度并不慢,没必要使用多线程;其二是爬虫会造成网站一定程度的负载,所以小心被封IP哦!但是多线程抓取的大致思路和代码我会写在代码中供小伙伴们参考,其中可自定义线程数量,递归,Task集合和工厂,任务完成回调等,感兴趣的小伙伴可以尝试一下。

  多线、异步线程,举个例子,我发起一个采集请求,你是否采集完毕我不管,我只负责发起这个请求,然后我就去做其他事情了,至于你什么时候采集完,那就是你的事情了,所以这个“你”,即可代表是异步线程,类似于jQuery中的ajax异步请求。所以项目中“开始采集”按钮其实就是开启一个子线程去做抓取动作,什么时候抓完就随它去吧~

  通过以上的介绍代码方面差不多就是这些了,采集到的新闻我会默认存放在程序根目录“News”文件夹下,也可自定义多个目录,程序会平均分配到各个目录,我们来看一下最终的效果展示

  其实我们思维稍微发散一点,不难想到这个东西可以做什么,举个简单的例子:假如我们要做新闻网站,那么这个工具就是新闻的数据来源,设置好采集间隔,存到数据库里基本上就不用管了,那如果你有十个,二十个,一百个网站呢?上一篇文章有小伙伴提到“好一个为所欲为”,那么你认为呢?欢迎留言发散思维,来一场盛大的思维碰撞吧!

  通过以上的介绍,相信大家对网络爬虫有了一定的了解,总结下来落实到代码上面,还是尽量少写bug为妙,哈哈,该有的异常处理一定要做好。

  今天的分享到这里就结束了,有很多不足之处,欢迎大家留言指正,转发评论,喜欢我的朋友们可以关注,分享技术心得,满满干货,我们共同交流,提升!

浏览过本文章的用户还浏览过
  • 新闻理想_百度文库

    新闻理想_广告/传媒_人文社科_专业资料。变革的媒体时代 不变的新闻理想 这是媒体的变革时代,转型时代,发展时代。无须讳言,新媒体 技术的普遍应用,传统媒体与新媒体融合发展时期,这一切都让纸媒 的发展陷入困境。 每一次真正的革新,都是在顺应 变革的 [详细]

  • 多部门:全面推进城市交通一卡通互联互通

    中新网5月31日电 据交通部网站消息,交通运输部等十二部门和单位近日印发绿色出行行动计划(2019—2022年)。《行动计划》提出,鼓励有条件的城市将公交线网向郊区、全域及毗邻城市(镇)延伸;全面推进城市交通一卡通互联互通,推广普及闪付、虚拟卡支付、手 [详细]

  • 杭州紫园小区来了个“不速之客” 夜里高歌吵得居民睡不着!还赶

    李东告诉记者,这只扰民休息的鸟只在晚上叫,如遇晚上下雨,它就躲在树上不会叫,如果不下雨,这只鸟就会在房顶上,大概在7点半左右天黑了就开始叫,鸟叫声是间 [详细]

  • 学生会新闻部工作总结例文参照

    【导语】工作总结还是认识世界的重要手段,是由感性认识上升到理性认识的必经之路。通过工作总结,使零星的,肤浅的,表面的感性认识上升到全面的,系统的,本质的理性认识上来,寻找出工作和事物发展的规律,从而掌握并运用这些规律,写好工作总结,须勤于思索,善于 [详细]