网站项目设计流程案例,wordpress 标签大全,温建设文件发布在哪个网站,免费版网站建设合同最近园子里网络爬虫很火爆#xff0c;从 PHP 到 Python#xff0c;从 windows服务 到 winform 程序#xff0c;各路大神各显神通。小弟也献下丑#xff0c;从平庸流出发#xff0c;简述下 WebApi AngularJS 方式实现网络爬虫。 一、技术框架 1.1 前端#xff1a; Angular…最近园子里网络爬虫很火爆从 PHP 到 Python从 windows服务 到 winform 程序各路大神各显神通。小弟也献下丑从平庸流出发简述下 WebApi AngularJS 方式实现网络爬虫。 一、技术框架 1.1 前端 AngularJS创建SPA单页面应用。爬虫需要长时间的等待服务器返回结果必须使用ajax实现使用JQuery一样可以做到。 1.2 后端 WebApi。AngularJS 配合 WebApi 使用十分融洽。 1.3 后端用到的框架/库 a. Abp最近园子里很火的基础框架最大的优点是分模块的实现包括 AppServiceWebApi 层的分模块使用后代码结构非常清晰。详细内容可以见 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录 b. 苏飞论坛的C#HttpHelper万能框架用于Html页面的采集可以直接使用『HTTP代理』读取这点很重要 需要注意的一点是这个框架不是免费的需要成为年费会员才可以下载。 c. Ivony的Jumony库项目介绍“Jumony Core首先提供了一个近乎完美的HTML解析引擎其解析结果无限逼近浏览器的解析结果。支持CSS3选择器。” 二、技术实现 2.1、抓取免费的 Http 代理地址。 这个百度就行可以搜索到一大堆的提供 Http 代理网址的网站首先将这些免费的Http代理抓取大自己的代理库第二步和第三步需要用到这些代理。使用时要记录代理的可用情况设定策略失败次数过多时剔除掉。 当然土豪直接购买收费的代理即可稳定性高。 下面是我抓取的代理列表 被禁的代理我设定策略是失败次数大于成功次数3次即抛弃 2.2、读取文章列表单线程 有了足够的Http代理列表后就可以抓取网页了。 后端实现功能使用 HttpHelper 挂代理抓取网页然后使用 Jumony 分析页面内容。同时要记录每个 Http 代理的成功/失败情况。 前端控制流程根据 WebApi 返回的结果判断是否抓取成功。如果成功继续下一个页面的抓取如果失败换个代理继续抓取当前页。 由于文章列表不会太多用单线程抓取足够了。 上图 2.3、读取文章多线程 通过第二步抓取到了大量未读取内容的文章后这时候就需要抓取文章内容了。由于量比较大通过多线程实现。 所谓的多线程就是通过 Ajax 同时调用多个 WebApi 进程通过监控返回结果。 上图 点击『开始读取』后 点击『停止读取』后 三、后记 没有用到什么高深的知识高深的部分都被 AngularJS、Abp、HttpHelper、Jomony实现因此是平庸技术流的实现。 以上。 转载于:https://www.cnblogs.com/dusdong/p/4733594.html