用.net实现远程获取其他网站页面内容

页面

  远程获取网页内容.经过一定的处理和灵活应用,可以开发成成体系网站内容采集系统.通常也叫做"新闻小偷"一般来说.做内容采集分为如下几个大致的步骤:

  1.远程获取页面的全部Html源文本.

  2.通过过滤处理,分析有效内容文本.(通常用正则表达式来截取有效数据)

  3.将格式有效的数据,根据自己的数据库结构分标题,内容....一些其他属性保存到自己的本地数据库.

  ok整个采集过程如此简单.原理也不难.下面我们看看实现的具体基础代码!

  首先我们来写一个获取远程Html源的方法.

public string GetHttpData(string Url)
        {
            string sException=null;
            string sRslt=null;
            WebResponse oWebRps=null;
            WebRequest oWebRqst=WebRequest.Create(Url);
            oWebRqst.Timeout=50000;
            try
            {
                oWebRps=oWebRqst.GetResponse();
            }
            catch(WebException e)
            {
                    sException=e.Message.ToString();
                    EYResponse.Write(sException);
            }
            catch(Exception e)
            {
                    sException=e.ToString();
                    EYResponse.Write(sException);
            }
            finally
            {
                if(oWebRps!=null)
                {
                    StreamReader oStreamRd=new StreamReader(oWebRps.GetResponseStream(),Encoding.GetEncoding("GB2312"));
                    sRslt=oStreamRd.ReadToEnd();
                    oStreamRd.Close();
                    oWebRps.Close();
                }
            }
            return sRslt;
        }

  以上代码为获取远程Html源的一个方法.参数仅一个.就是你要获取的目标页面的完整Url路径.返回一个string类型的Html源数据.

  下面我们再来继续第二个步骤.分析自己需要的有效数据!这里我假设某个页面来做分析...

public string [] GetData(string Html)
{
String [ ] rS=new String[2];               
string s = Html;
                s=Regex.Replace(s,"\\s{3,}","");
                s=s.Replace("\r","");
                s=s.Replace("\n","");
                string Pat="<td align=\"center\" class=\"24p\"><B>(.*)</B></td></tr><tr>.*(<table width=\"95%\" border=\"0\" cellspacing=\"0\" cellpadding=\"10\">.*</table>)<table width=\"98%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">(.*)<td align=center class=l6h>";
                Regex Re = new Regex(Pat);
                Match Ma= Re.Match(s);
                if(Ma.Success)
                {
                    rS[0]=Ma.Groups[1].ToString();
                    rS[1]=Ma.Groups[2].ToString();
                    pgStr=Ma.Groups[3].ToString();
                }
return rS;
}

  这个方法也很简单.主要功能及时截取获取过来的Html源.取得自己需要的数据...

  参数是一个string类型的.将我们获取的html源通过参数传递过来.

  在方法类通过一个正则的模式匹配找到标题和内容的位置并取出来.存入一个string的数组给方法返回...以后的事我就不多说了..你只要把你取出来的数据存到你数据库对应的字段就ok了!

时间: 2024-08-30 16:19:01

用.net实现远程获取其他网站页面内容的相关文章

springmvc定时器任务如何获取其他网站的内容?

问题描述 springmvc定时器任务如何获取其他网站的内容? springmvc定时器任务如何获取其他网站的内容并且存入数据库? 解决方案 用httpclient抓取网页, 用正则表达式提取有用的数据

频繁获取网站页面内容后被禁止了,是哪里设置的问题?

问题描述 通过远程获取网页内容来生成静态页,但是每获取100页内容后就获取不到,全部页面都返回一段跳转代码<metahttp-equiv="refresh"content="0;URL=/?tads=514203695">请问是被获取站点的IIS设置的问题,还是服务器哪里设置禁止机制了? 解决方案 解决方案二:很可能只是一段简单的代码,判断同一个IP地址短时间内请求的次数达到100次就禁止继续访问了解决方案三:引用1楼Z65443344的回复: 很可能只

羽毛:分享八大网站页面内容建设的细节

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 内容为王,外链为皇.这话已经被说滥了,都说内容为王,那么如何造就这个王呢?特别是一些朋友刚开始做站,程序美工不懂,seo也不会,那初级能做的是只有内容.而就这看似很普通的内容建设却困扰着大大小小站长,网站运营者. 一般,我们在做页面内容建设可以注意以下八大方面: 一.做内容必须统筹,有规划的来做.不能今天突然想到啥就添加啥,一方面这样迟早有一

如何做好B2B行业网站页面内容设计留住用户

对于B2B行业网站的页面设计,大家可能更多考虑页面用色.导航条.按钮.标题栏的设计,内容设计可能常常被大家忽略.但是如果内容设计的不好,可能会让你的所有设计被毁于一旦.比如如何让内容有主次之分.层次感,使内容看起来不会太乱.太多,使用户不愿意继续阅读下去,很快离开网站,不能留住用户继续访问. 在本研究报告前面章节我讲过,永远要记得用户在没有明确的阅读内容前是扫描而不是阅读,在导航页面,用户很乐于扫视一句一句的内容,对于大面积没有重点的内容,没有耐心,我们必须在网页上提供既简短又有一定视觉焦点的内

求助,c#用正则表达式获取固定网站新闻内容

问题描述 比如说获取百度新闻"www.news,baidu.com"的的内容,该怎么写,现在只写出前半部分,获取了百度新闻网页的源代码,然后怎么用正则表达式来获取新闻列表和内容?有大神能帮忙写一下吗,最好能稍微解释一下,因为刚开始学,一片空白--,谢谢了前半部分: 解决方案 解决方案二:首先,你要确定你要采集的网站的HTML信息,根据HTML信息才能匹配出正则表达式,然后用正则表达式筛选你想要的结果解决方案三:@"<ab[^<>]*?href=['"

C# 实现抓取网站页面内容的实例方法_实用技巧

抓取新浪网的新闻栏目,如图所示: 使用 谷歌浏览器的查看源代码: 通过分析得知,我们所要找的内容在以下两个标签之间: 复制代码 代码如下: <!-- publish_helper name='要闻-新闻' p_id='1' t_id='850' d_id='1' --> 内容.... <!-- publish_helper name='要闻-财经' p_id='30' t_id='98' d_id='1' --> 如图所示: 内容.... 使用VS建立一个如图所示的网站: 我们下载

造成网站页面内容相似度高的原因及解决办法

通常来说,在网站的建设过程中,重复内容的产生很难避免,但是重复内容在很大程度上会影响网站在搜索引擎中的表现.今天和大家探讨的内容就是重复内容产生的原因以及解决方法. 产生重复内容的主要原因 1,网址规范化问题. 网址规范化问题包括主域名的规范化和页面URL地址规范化两个方面,主域名的规范化需要规范化.另外是内页URL的规范化,通常为了让搜索引擎能够更好的抓取网站内容,我们会将URL进行伪静态处理,而一般的网站伪静态之后,原始的动态URL依然存在并能够访问,这样就造成了多个URL访问相同网址. 2

java web-如何将一个网站的内容嵌入另一个网站的页面中

问题描述 如何将一个网站的内容嵌入另一个网站的页面中 cms建的网站A,Javaweb动态网站B 需求:在B的页面上显示A的模板页面.除了iframe外,还有什么方法能解决呢? 解决方案 在访问ASP网站页面时调用另一个网站页面内容 解决方案二: ajax跨站,查一下jsonp相关内容 解决方案三: 楼上回答正解. 还有个方法: 用webservice接口的方式,比如你开放一个Web Api接口,对方网站服务器端请求接口,你返回相应的数据内容即可. 这样有3种方法可以实现了: 1.提供URL,

我在做一个网站统计系统时,在统计页面的时候总是要刷新网站页面时才能获取客户端的基本信息?

问题描述 我在做一个网站统计系统时,在统计页面的时候总是要刷新网站页面时才能获取客户端的基本信息? 解决方案 解决方案二:问题不具体,你要统计什么?客户端的什么信息?你为什么要刷新页面呢?解决方案三:不刷新就得用Javascript+Ajax解决方案四:在页面加载的时候不就可以统计到客户端的信息了吗