c#抓取网页数据(两个c#开发的网络爬虫老外写的相当不错:解析结果)
优采云 发布时间: 2021-09-13 12:11c#抓取网页数据(两个c#开发的网络爬虫老外写的相当不错:解析结果)
项目经理说这是项目的一个亮点(无语...),类似爬虫的东西,模拟登录后台系统获取所需数据。然后开始研究这个。
之前有一些数据抓取的经验,抓取过程无非是:设置参数->服务器发送请求->解析结果
1、验证码识别
系统验证码只有数字,并不复杂,没有深入研究。
这完全满足我的需求。
2、用户名和密码由用户提供。
里面有证书,每次申请都必须随身携带。
证书获取方式:
3、网上有很多模拟登录的请求。
推荐一位大神,写的相当好:
4、parse html 内容
推荐一个类库:HtmlAgilityPack,好用。它将html字符串转换为xml类型的操作(本来我想用普通的)。
有了上面的东西,基本上就可以调试工作了。如果要做后台服务,还需要定时任务。这仍在研究中。 . .
经验:
1、登录的时候一直提示验证码错误,很费解,因为我是手动输入验证码的。用抓包工具分析后发现是JSESSIONID(使用的是JSP网站服务器),这个是每次请求都要带的,JSESSIONID是否正确。
2、抓数据时提示登录超时,郁闷了半天,抽了根烟,把问题指向相关参数。抓包分析后,问题出现在JSESSIONID上,JSESSIONID的值不正确。修改后一切正常。
开源的网络爬虫有很多,在Sourceforge上搜索也有很多,但C#很少。今天推荐两个c#开发的网络爬虫
老外写的,http通信使用socket,效果很好,但是没有处理中文,下载中文时会出现乱码。在socket接收部分做一些处理就可以了。这个程序比较完整,具备了一个基本爬虫的所有功能,就是一个很好的例子。 VS2003, .net 1.1 有些已经过时,需要调整。
是老外写的,csspider.zip。没有仔细研究,遵循LGPL协议,这位同志是专门研究爬虫的,写过很多书,但是都是英文的,看不懂。 .net 2.0。
这里介绍的两个例子都是比较完整的例子,包括网页下载、分析、多线程、输出。下面的一点点处理就能得到很好的效果,同时也可以研究更多的实现思路,对自己的爬虫有很大的帮助。