爬虫程序吗?怎样抓取啊?
如何根据输入的目标URL地址,来有针对性的进行网页抓取?
有没有相关算法和代码?
18 个解决方案
#1
正则,以及webrequest
#2
就是分析别人的html代码,用正则分析出你要的内容.
#3
先用webrequest获取要抓取页面的内容,再用正则匹配
#4
webrequest
webresponse
webresponse
#5
正则表达式
每个网站内容页面代码不用,所以不用网站需要用不同的正则表达式
每个网站内容页面代码不用,所以不用网站需要用不同的正则表达式
#6
代码。
#7
每个网站内容页面代码不同,所以不用网站需要用不同的正则表达式
#8
正则+webclient(webrequest)
#9
(1)HTML分析:需要某种HTML解析器来分析蜘蛛程序遇到的每一个页面。
(2)页面处理:需要处理每一个下载得到的页面。下载得到的内容可能要保存到磁盘或者进一步分析处理。
(3)多线程:只有拥有多线程能力,蜘蛛程序才能真正做到高效。
(4)确定何时完成:不要小看这个问题,确定任务是否已经完成并不简单,尤其是在多线程环境下。
(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;
}
获取指定地址的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
webresponse
#5
正则表达式
每个网站内容页面代码不用,所以不用网站需要用不同的正则表达式
每个网站内容页面代码不用,所以不用网站需要用不同的正则表达式
#6
代码。
#7
每个网站内容页面代码不同,所以不用网站需要用不同的正则表达式
#8
正则+webclient(webrequest)
#9
(1)HTML分析:需要某种HTML解析器来分析蜘蛛程序遇到的每一个页面。
(2)页面处理:需要处理每一个下载得到的页面。下载得到的内容可能要保存到磁盘或者进一步分析处理。
(3)多线程:只有拥有多线程能力,蜘蛛程序才能真正做到高效。
(4)确定何时完成:不要小看这个问题,确定任务是否已经完成并不简单,尤其是在多线程环境下。
(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;
}
获取指定地址的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服务来定时执行.