zoukankan      html  css  js  c++  java
  • C# 抓取网站数据

    项目主管说这是项目中的一个亮点(无语...), 类似于爬虫一类的东西,模拟登陆后台系统,获取需要的数据。然后就开始研究这个。

    之前有一些数据抓取的经验,抓取流程无非:设置参数->服务端发送请求->解析结果

    1、验证码识别

    系统的验证码只包含数字,不复杂,所以没有深入研究。

    http://www.cnblogs.com/ivanyb/archive/2011/11/25/2262964.html

    这个完全满足我的需求。

    2、用户名、密码是用户提供的。

    这里面有一个证书,每次请求都要带上。

    证书获取方法:http://www.sufeinet.com/thread-4270-1-1.html

    3、模拟登陆请求网上很多。

    推荐位大神,写的相当不错:http://www.sufeinet.com/thread-2382-1-1.html

    4、解析html内容

    推荐一个类库:HtmlAgilityPack,灰常好用。它将html字符串转换成类型xml的操作(本来我还想用正则)。

    有以上这些东西,基本上就可以调试工作了,要想做成一个后台服务,还需要一个定时任务的东西,这个还在研究。。。

    心得:

    1、在登陆的时候,一直提示验证码错误,百思不得其解,因为验证码是我手动输入的,用抓包工具分析后,发现JSESSIONID(JSP网站服务端用到的),这个每次请求都需要带上,以及JSESSIONID是否正确。

    2、在抓取数据的时候,提示登陆超时,郁闷许久,抽根烟,把问题有指向了相关参数上,抓包分析后,问题就出现在JSESSIONID上,JSESSIONID取值不对,修改后,一切正常。

    开源网络爬虫很多,上Sourceforge一搜就会有很多,但很少有C#的。今天推荐两个c#开发的网络爬虫

    http://www.codeproject.com/KB/IP/Crawler.aspx 老外写的,http通讯采用了socket,效果不错,不过没有处理中文,中文下载会出现乱码,在socket接受部分做一下处理就可以了。这个程序比较 完整,一个基本爬虫所具备的功能都有了,是一个不错的例子。VS2003,.net 1.1 其中有些写法已经过时,需要调整。
    http://www.jeffheaton.com/source 还是一个老外写的,csspider.zip。没有仔细研究,遵循LGPL协议,这个同志是专门做爬虫研究的,写过不少书,只不过是英文,看不懂。.net 2.0的。
    这里介绍的两个例子都是比较完整的例子,网页下载、分析、多线程、输出都有了。稍微进行以下加工便可得到很好的效果,同时,也可多研究一下实现思路,对自己做爬虫有很大的帮助。

  • 相关阅读:
    亿级 Web 系统搭建:单机到分布式集群
    机器学习14种常见算法
    Nginx——使用 Nginx 提升网站访问速度【转载+整理】
    全栈开发工程师,就是个神话~【转载+整理】
    谷歌、亚马逊相继宣布屏蔽 Flash 广告,又一个时代行将结束?【转载+整理】
    前端框架现状调查【转载+整理】
    Swift 编程语言【转载+整理】
    如何将 Java 项目转换成 Maven 项目
    Eclipse 4.5.0 离线安装 Veloeclipse 插件
    Java 8 新特性——Lambdas 表达式
  • 原文地址:https://www.cnblogs.com/beijing2020/p/5726287.html
Copyright © 2011-2022 走看看