如何自动抓取网页新闻内容?

时间:2020-12-02 09:56:02
如何每隔1小时就抓取其它门户网站的最新新闻显示在div中?
爬虫程序吗?怎样抓取啊?
如何根据输入的目标URL地址,来有针对性的进行网页抓取?

有没有相关算法和代码?

18 个解决方案

#1


正则,以及webrequest

#2


就是分析别人的html代码,用正则分析出你要的内容.

#3


先用webrequest获取要抓取页面的内容,再用正则匹配

#4


webrequest
webresponse

#5


正则表达式

每个网站内容页面代码不用,所以不用网站需要用不同的正则表达式

#6


代码。

#7


每个网站内容页面代码不同,所以不用网站需要用不同的正则表达式

#8


正则+webclient(webrequest)

#9


(1)HTML分析:需要某种HTML解析器来分析蜘蛛程序遇到的每一个页面。 
(2)页面处理:需要处理每一个下载得到的页面。下载得到的内容可能要保存到磁盘或者进一步分析处理。 
(3)多线程:只有拥有多线程能力,蜘蛛程序才能真正做到高效。 
(4)确定何时完成:不要小看这个问题,确定任务是否已经完成并不简单,尤其是在多线程环境下。 

#10


采集器抓!

#11


我服了楼上各位了,光说不练

获取指定地址的html源代码
public string GetHtml(string url)
        {
            string sExp=null;
            string sRslt=null;
            WebResponse oWebRps=null;
            WebRequest oWebRqst=WebRequest.Create(url);
            oWebRqst.Timeout=50000;
            try
            {
                oWebRps=oWebRqst.GetResponse();
            }
            catch(WebException e)
            {
                    sExp=e.Message.ToString();
                    Response.Write(sExp);
            }
            catch(Exception e)
            {
                    sExp=e.ToString();
                    Response.Write(sExp);
            }
            finally
            {
                if(oWebRps!=null)
                {
                    StreamReader sr=new StreamReader(oWebRps.GetResponseStream(),Encoding.GetEncoding("GB2312"));
                    sRslt=sr.ReadToEnd();
                    sr.Close();
                    oWebRps.Close();
                }
            }
            return sRslt;
        }

2.用正则过滤内容,得到自己想要的,正则不会的话一边玩泥巴去,自己去学
public string [] FilterHtml(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;
}

#12


写的太麻烦,又不能上传附件,如果需要源码请联系我MSN:ch_feng@live.cn

#14


是不是有点类似新闻定制(rss)啊,

#15


如何定时抓取?

#16


你把下面这个类读懂,就会自己写了!我也是用这个类写的,可以保存新闻内容和图片

#17


代码太长,无法回复,请看此网页:http://www.csccd.net/news/20090119162724482.html

#18


定时抓取可以装一个WINDOWS服务来定时执行.

#1


正则,以及webrequest

#2


就是分析别人的html代码,用正则分析出你要的内容.

#3


先用webrequest获取要抓取页面的内容,再用正则匹配

#4


webrequest
webresponse

#5


正则表达式

每个网站内容页面代码不用,所以不用网站需要用不同的正则表达式

#6


代码。

#7


每个网站内容页面代码不同,所以不用网站需要用不同的正则表达式

#8


正则+webclient(webrequest)

#9


(1)HTML分析:需要某种HTML解析器来分析蜘蛛程序遇到的每一个页面。 
(2)页面处理:需要处理每一个下载得到的页面。下载得到的内容可能要保存到磁盘或者进一步分析处理。 
(3)多线程:只有拥有多线程能力,蜘蛛程序才能真正做到高效。 
(4)确定何时完成:不要小看这个问题,确定任务是否已经完成并不简单,尤其是在多线程环境下。 

#10


采集器抓!

#11


我服了楼上各位了,光说不练

获取指定地址的html源代码
public string GetHtml(string url)
        {
            string sExp=null;
            string sRslt=null;
            WebResponse oWebRps=null;
            WebRequest oWebRqst=WebRequest.Create(url);
            oWebRqst.Timeout=50000;
            try
            {
                oWebRps=oWebRqst.GetResponse();
            }
            catch(WebException e)
            {
                    sExp=e.Message.ToString();
                    Response.Write(sExp);
            }
            catch(Exception e)
            {
                    sExp=e.ToString();
                    Response.Write(sExp);
            }
            finally
            {
                if(oWebRps!=null)
                {
                    StreamReader sr=new StreamReader(oWebRps.GetResponseStream(),Encoding.GetEncoding("GB2312"));
                    sRslt=sr.ReadToEnd();
                    sr.Close();
                    oWebRps.Close();
                }
            }
            return sRslt;
        }

2.用正则过滤内容,得到自己想要的,正则不会的话一边玩泥巴去,自己去学
public string [] FilterHtml(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;
}

#12


写的太麻烦,又不能上传附件,如果需要源码请联系我MSN:ch_feng@live.cn

#13


#14


是不是有点类似新闻定制(rss)啊,

#15


如何定时抓取?

#16


你把下面这个类读懂,就会自己写了!我也是用这个类写的,可以保存新闻内容和图片

#17


代码太长,无法回复,请看此网页:http://www.csccd.net/news/20090119162724482.html

#18


定时抓取可以装一个WINDOWS服务来定时执行.