09 2016 档案

摘要:Url Seen用来做url去重。对于一个大的爬虫系统,它可能已经有百亿或者千亿的url,新来一个url如何能快速的判断url是否已经出现过非常关键。因为大的爬虫系统可能一秒钟就会下载几千个网页,一个网页一般能够抽取出几十个url,而每个url都需要执行去重操作,可想每秒需要执行大量的去重操作。因此Url Seen是整个爬虫系统中非常有技术含量的一个部分。 为了提... 阅读全文
posted @ 2016-09-26 21:50 玮仔Wayne 阅读(466) 评论(0) 推荐(0)
摘要:Url Filter则是对提取出来的URL再进行一次筛选。不同的应用筛选的标准是不一样的,比如对于baidu/google的搜索,一般不进行筛选,但是对于垂直搜索或者定向抓取的应用,那么它可能只需要满足某个条件的url,比如不需要图片的url,比如只需要某个特定网站的url等等。Url Filter是一个和应用密切相关的模块。 using System; us... 阅读全文
posted @ 2016-09-26 20:50 玮仔Wayne 阅读(723) 评论(0) 推荐(0)
摘要:Extractor的工作是从下载的网页中将它包含的所有URL提取出来。这是个细致的工作,你需要考虑到所有可能的url的样式,比如网页中常常会包含相对路径的url,提取的时候需要将它转换成绝对路径。这里我们选择使用正则表达式来完成链接的提取。 html标签中的链接地址通常会出现在href属性或者src属性中,所以我们采用两个正则表达式来匹配网页中的所有链接地... 阅读全文
posted @ 2016-09-25 00:55 玮仔Wayne 阅读(357) 评论(0) 推荐(0)
摘要:[MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现 [MVC学习笔记]2.使用T4模板生成其他类的具体实现 [MVC学习笔记]3.使用Spring.Net应用IOC(依赖倒置) [MVC学习笔记]4.使用Log4Net来进行错误日志的记录 [MVC学习笔记]5.使用Controller来代替Filter完成登录验证(Session校验) ... 阅读全文
posted @ 2016-09-23 21:10 玮仔Wayne 阅读(225) 评论(0) 推荐(0)
摘要:最近DotNetCore更新到了1.0.1,Azure tools也更新到了2.9.5,尝试更新时发现,DotNetCore更新失败,提示:0x80072f8a未指定的错误,而Azure Tools中也包含了DotNetCore的更新,0x80072f8a问题,导致两个软件都不能成功地完成更新。 研究安装的错误日志后才发现,原来使因为证书过期导致的无法下载微软... 阅读全文
posted @ 2016-09-21 13:08 玮仔Wayne 阅读(1584) 评论(7) 推荐(1)
摘要:普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现;并在1957年由美国计算机科学家罗伯特·普里姆(英语:Ro... 阅读全文
posted @ 2016-09-20 21:04 玮仔Wayne 阅读(3512) 评论(0) 推荐(0)
摘要:在之前的项目中,如果有需要使用验证码,基本都是自己用GDI+画图出来,简单好用,但是却也存在了一些小问题,首先若较少干扰线,则安全性不是很高,验证码容易被机器识别,若多画太多干扰线条,机器人识别率下降的同时,人眼的识别率也同步下降(震惊哭)。更为重要的是,GDI+绘制的验证码一般来说也不会很美观,如果做一个炫酷的登陆界面却配了这样一个验证码,画风诡异,丑到极致。 ... 阅读全文
posted @ 2016-09-20 20:15 玮仔Wayne 阅读(1556) 评论(0) 推荐(5)
摘要:最近听闻数据结构与算法实践课的老师又出了和上年一样的选题,不禁想起了去年自己完成作业时的点点滴滴,遗憾当时没有写博客的习惯,之前的一些心得这一年实践的过去也逐渐淡忘了,突然就有了总结一下的想法,希望能有新的收获吧。 由于当时也没注意保存,软件完成过程中的一些文档早已丢失了,幸运的是Winform版源 阅读全文
posted @ 2016-09-18 18:49 玮仔Wayne 阅读(9124) 评论(1) 推荐(0)
摘要:为了解决单机处理的瓶颈,增强软件的可用性,我们需要将软件部署在多台服务器上启用多个二级子域名以频道化的方式,根据业务功能将网站分布部署在独立的服务器上,或通过负载均衡技术(如:DNS轮询、Radware、F5、LVS等)让多个频道共享一组服务器。当我们将网站程序分部到多台服务器上后,由于Session受实现原理的局限,无法跨服务器同步更新Session,使得登录状态难以通过Ses... 阅读全文
posted @ 2016-09-17 17:29 玮仔Wayne 阅读(753) 评论(2) 推荐(2)
摘要:分别使用Controller和Filter方法完成登录验证,对比二者的优劣 阅读全文
posted @ 2016-09-17 10:16 玮仔Wayne 阅读(803) 评论(5) 推荐(1)
摘要:分析ASP.NET MVC中隐藏处理的方法,使用内存队列记录日志防止并发错误,Log4Net的使用方法及简单应用 阅读全文
posted @ 2016-09-17 09:39 玮仔Wayne 阅读(539) 评论(0) 推荐(2)
摘要:简单介绍了IOC的知识,提供了控制台Demo来展示Spring.Net的基本用法,介绍了Spring.Net在ASP.NET MVC程序中的使用方法 阅读全文
posted @ 2016-09-16 20:39 玮仔Wayne 阅读(531) 评论(0) 推荐(1)
摘要:在前篇中我们已经将User类中的代码做了具体的实现,但仍然有多个实体类未实现,以后可能还会增加新的数据表,数据表结构也有可能发生变化,所以我们使用T4模板来完成类的生成,这样就算数据库表发生了改变,也会自动根据改变后的实体对类进行重新生成。 下面是数据访问层的T4模板文件 Dal.tt using PMS.IDAL; using PMS.Model; us... 阅读全文
posted @ 2016-09-16 18:35 玮仔Wayne 阅读(339) 评论(2) 推荐(0)
摘要:新人刚开始学习ASP.NET MVC,若有不足之处希望能得到您的指点,不胜感激! 先来一张项目的层级结构图: Model:模型层,主要是各种类型、枚举以及ORM框架,框架完成数据库和实体类的映射。项目中选用了微软的开源ORM框架 EntityFramework 6.0 (以下简称EF),数据库则选择了微软的轻量级数据库S... 阅读全文
posted @ 2016-09-16 18:14 玮仔Wayne 阅读(695) 评论(6) 推荐(2)
摘要:Internet上的一些站点常常存在着镜像网站(mirror),即两个网站的内容一样但网页对应的域名不同。这样会导致对同一份网页爬虫重复抓取多次。为了避免这种情况,对于每一份抓取到的网页,它首先需要进入ContentSeen模块。该模块会判断网页的内容是否和已下载过的某个网页的内容一致,如果一致,则该网页不会再被送去进行下一步的处理。这样的做法能够显著的降低爬虫需要下载的网页... 阅读全文
posted @ 2016-09-13 20:00 玮仔Wayne 阅读(425) 评论(0) 推荐(0)
摘要:为了便于使用及日后的扩展,将Scrapy简单封装为了Requester,具体代码如下: using System; using System.Collections.Generic; using Crawler.Common; namespace Crawler.Protocol { public class Requester { priv... 阅读全文
posted @ 2016-09-13 00:26 玮仔Wayne 阅读(262) 评论(0) 推荐(0)
摘要:之前我们已经基于ARSoft.Tools.Net简单实现了DNS解析模块的功能,但是当性能要求升高时,每一次爬取都要进行DNS请求,甚至很有可能一段时间内每次请求的都是相同的地址,频繁的DNS请求就会成为性能瓶颈,所以我们要通过缓存机制将DNS解析结果缓存下来,降低DNS解析操作,提升系统性能。 如此,我们基于之前封装的MemoryCacheHelper类对DnsRes... 阅读全文
posted @ 2016-09-11 14:08 玮仔Wayne 阅读(512) 评论(0) 推荐(0)
摘要:最近在做爬虫的作业,今天学习的内容是关于DNS解析模块的制作的。使用的库为ARSoft.Tools.Net,它是一个非常强大的开源DNS控件库,包含.Net SPF validation, SenderID validation以及DNS Client、DNS Server接口。使用该接口可轻松实现DNS客户请求端及服务器解析端。 项目地址:http://arsofttoo... 阅读全文
posted @ 2016-09-11 01:01 玮仔Wayne 阅读(853) 评论(1) 推荐(0)
摘要:最近因为一个作业需要完成CNKI爬虫,研究爬虫架构的时候发现了这个疑似移植于Python的著名开源爬虫框架Scrapy的ScrapySharp,然而在网上寻找之后只发现了这个F#的Demo,就使用原文中示例的网站写了这个C#版本的代码。 PS:研究之后发现,ScrapySharp和Scrapy差距还是挺大的,没有Scrapy那样完善的八大组件,只含有获取网页... 阅读全文
posted @ 2016-09-10 01:16 玮仔Wayne 阅读(787) 评论(1) 推荐(0)