01 2014 档案

摘要:为什么要做正文提取一般做舆情分析,都会涉及到网页正文内容提取。对于分析而言,有价值的信息是正文部分,大多数情况下,为了便于分析,需要将网页中和正文不相干的部分给剔除。可以说正文提取的好坏,直接影响了分析结果的好坏。对于特定的网站,我们可以分析其html结构,根据其结构来获取正文信息。先看一下下面这张... 阅读全文
posted @ 2014-01-07 07:11 StanZhai 阅读(44755) 评论(92) 推荐(66) 编辑
摘要:项目背景最近忙着给部门开发一套交互式的报表系统,来替换原有的静态报表系统。老系统是基于dotnetCHARTING开发的,dotnetCHARTING的优势是图表类型丰富,接口调用简单,使用时只需绑定数据源即可(指定连接字符和sql语句,简单的配置一下就能出图),支持生成静态图表图片;缺点就是生成好的图是图片,传到了前台就失去了交互性(当然它还提供了一个jsCharting,不过感觉交互性做的还是不够好),再有就是这东东是收费的呀,用的话需要折腾破解版本。我最终选择了Highcharts(Interactive JavaScript charts for your webpage)来展现前台图 阅读全文
posted @ 2014-01-06 11:36 StanZhai 阅读(8207) 评论(12) 推荐(6) 编辑
摘要:场景最近对爬虫的数据库架构做调整,需要将数据迁移到MongoDB上去,需要重新实现一个针对MongoDB的Dao泛型类,好吧,动手开工,当实现删除操作的时候问题来了。我们的删除操作定义如下:void Delete(TEntity entity)。TEntity是我们的泛型类。而MongoDB官方驱动自带的删除操作是这样的:123// 假设数据模型为已定义的Articlevar query = Query.EQ(t => t.Id, id);coll.Remove(query);Dao操作的接口是不能修改的,这就要求我们必须实现以下操作:获取entity的Id值构造lambda表达式用于获 阅读全文
posted @ 2014-01-04 14:12 StanZhai 阅读(3176) 评论(7) 推荐(1) 编辑
摘要:应用场景我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理。处理方法在.net平台下Console类有个CancelKeyPress事件可以处理Ctrl+C,不过对于直接关闭控制台应用,这种处理就无能为力了。不过Windows API中有个SetConsoleCtrlHandler函数可以处理这两种关闭事件。C#处理代码如下:1234567891011121314151617181920212223242526272829303132static class Program{ 阅读全文
posted @ 2014-01-03 12:07 StanZhai 阅读(15727) 评论(6) 推荐(7) 编辑
摘要:记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库。今天又接到同事类似的需求,不过这次的账号量更大,考虑到上次遇到的问题,这次打算采用某种方案来提高插入数据的性能。了解了下SQLServer批量插入数据的技术,主要有两种:Bulk和表值参数(SQLServer 2008的特性),这两种方式相比循环使用insert插入数据,效率和性能明显上升。使用表值参数带来的提升更为显著。使用表值参数插入数据的一个例子1234567891011121314151617181920212223242 阅读全文
posted @ 2014-01-03 11:56 StanZhai 阅读(2015) 评论(0) 推荐(2) 编辑
摘要:从Gist上发现的,挺全的IMPORTANT! Remember to check out the wiki page at https://github.com/bebraw/jswiki/wiki/Game-Engines for the most up to date version. There's also a "notes" column in the table but it simply does not fit there... Check out the raw version to see it.This table contains prim 阅读全文
posted @ 2014-01-03 11:40 StanZhai 阅读(467) 评论(0) 推荐(0) 编辑
摘要:在使用 Git 的过程中,有时会不小心丢失 commit 信息。这一般出现在以下情况下:强制删除了一个分支而后又想重新使用这个分支,hard-reset 了一个分支从而丢弃了分支的部分 commit。如果这真的发生了,有什么办法把丢失的 commit 找回来呢?通常最快捷的办法是使用 git reflog 工具。当你 (在一个仓库下) 工作时,Git 会在你每次修改了 HEAD 时悄悄地将改动记录下来。当你提交或修改分支时,reflog 就会更新。gitupdate-ref 命令也可以更新 reflog。1.先用reflog看看记录的所有HEAD的历史: git reflog 2.然后找到那. 阅读全文
posted @ 2014-01-02 23:57 StanZhai 阅读(5357) 评论(0) 推荐(0) 编辑
摘要:准备我们使用CookComputing.XmlRpcServerV2 3.0.0来构建XmlRpc服务器。新建一个控制台项目,在项目中添加对CookComputing.XmlRpcServerV2 3.0.0的引用,可以使用nuget来安装。12PM> Install-Package xmlrpcnetPM> Install-Package xmlrpcnet-server编写服务我这里写了个非常简单的服务,代码如下:12345678public class SimpleService : XmlRpcListenerService{ [XmlRpcMethod] public i 阅读全文
posted @ 2014-01-02 21:56 StanZhai 阅读(1965) 评论(7) 推荐(6) 编辑
摘要:问题描述今天使用HtmlAgilityPack提取Form表单下的input节点,发现提取的form节点没有子节点,InnerHtml也是为空,起初以为是标签不全导致,后来分析html代码发现不可能是这个问题,提取div标签正常,偏偏form标签有问题,最终从网上找到了答案。解决方案在将html转为htmlDoc之前,添加:1HtmlNode.ElementsFlags.Remove("form");就可以正常提取到子节点的内容了,也就是:123456HtmlNode.ElementsFlags.Remove("form");HtmlDocument d 阅读全文
posted @ 2014-01-02 21:55 StanZhai 阅读(1208) 评论(1) 推荐(0) 编辑
摘要:起因最近使用nohup创建了一个后台进程,默认日志输出到了nohup.out文件中,程序跑起来也就没再管,过了大约一周,发现硬盘空间不够了,于是查找原因,发现这个nohup.out文件已经到了70G了,导致硬盘空间不足了。解决方案只输出错误信息到日志文件nohup ./program >/dev/null 2>log &什么信息也不要nohup ./program >/dev/null 2>&1 &知识补充,关于Linux的重定向Linux的3中重定向0:表示标准输入1:标准输出,在一般使用时,默认的是标准输出2:标准错误信息输出可以用来指定需要 阅读全文
posted @ 2014-01-02 16:19 StanZhai 阅读(26949) 评论(1) 推荐(8) 编辑
摘要:关于hexo和jekyllhexo和jekyll一样都是个静态网站生成工具,hexo是一个台湾小伙使用nodejs开发的,jekyll则是用ruby开发,github内置了jekyll,可以直接将jekyll相关的文件提交到github,github会自动给你生成静态页面。hexo由于采用nodejs开发的,因此需要在本地生成静态页面后在提交到github,不过hexo内置了hexo deploy命令,提交博客也是挺方便的。之前使用jekyll搭建的个人博客,由于jekyll对分页和文章摘要支持的不是很好,了解一下hexo这个新东西,感觉其页面生成速度还是蛮不错的,对分页和文章摘要也支持的挺好 阅读全文
posted @ 2014-01-02 08:15 StanZhai 阅读(5394) 评论(11) 推荐(3) 编辑
摘要:前言最近使用node-webkit开发一款博客发布软件,来替换难用的Windows Live Writer(主要是对Markdown标签的支持很差劲)。为了解决博文信息临时保存的问题,想到了使用sqlite这个小型的数据库。折腾的过程中遇到不少问题,这里做个记录方便以后查阅。安装Sqlite3模块参考sqlite3的官方文档说明,使用npm install sqlite3安装sqlite3。使用node-webkit测试官方给出的一段代码:执行以上代码会报如下错误:Uncaught Error: Cannot find module './binding/Release/node-v1 阅读全文
posted @ 2014-01-01 21:22 StanZhai 阅读(3546) 评论(1) 推荐(2) 编辑

点击右上角即可分享
微信分享提示