3个回答
展开全部
既然是获得指定网址的标题和内容,思路应该是非常清晰的,无非是以下两步:
1.通过WebClient类获取指定网址的源代码,具体来说用DownloadStringAsync()方法就能满足大多数需求了。
2.对源代码进行匹配,可以自己查找特征字符串,一般来说这儿都会用到正则表达式。
正如以上所述,这个爬虫的思路是非常简单的。难的其实不是编码,而是手动寻找能精确匹配新闻标题和内容的正则表达式。每个网站之间差别很大,要crawl标题和内容不像crawl一个网页的标题或者crawl电子邮件、crawl超链接那么直截了当。
我不太确定你是专门针对一个门户网站做爬虫还是想做一个普遍适用的爬虫,如果是后者,你的精力其实主要是花在对特征字符串数据库的维护上——每个网站特征不同,而且网站可能时常会有更新,这你得实时跟进才行。
1.通过WebClient类获取指定网址的源代码,具体来说用DownloadStringAsync()方法就能满足大多数需求了。
2.对源代码进行匹配,可以自己查找特征字符串,一般来说这儿都会用到正则表达式。
正如以上所述,这个爬虫的思路是非常简单的。难的其实不是编码,而是手动寻找能精确匹配新闻标题和内容的正则表达式。每个网站之间差别很大,要crawl标题和内容不像crawl一个网页的标题或者crawl电子邮件、crawl超链接那么直截了当。
我不太确定你是专门针对一个门户网站做爬虫还是想做一个普遍适用的爬虫,如果是后者,你的精力其实主要是花在对特征字符串数据库的维护上——每个网站特征不同,而且网站可能时常会有更新,这你得实时跟进才行。
追问
谢谢您的回答,我是针对一个门户网站做爬虫,门户网站显示的是新闻标题,而内容是点击各标题进去才可以得到的。这个应该怎样实现呢。另外根据您多年的项目经验,这个程序应该注意哪些以致看起来是有经验的人做的,而我还是一个菜鸟
追答
这个只要在获取页面源代码的时候通过正则表达式查找里面的超链接,把它提取出来,再不断向下迭代就好了。这种代码网上应该就有好多的。至于如何要看上去显得更加有经验,这个可以在爬虫效率上下功夫,合理运用多线程,当然还有平常编码习惯中的小细节,不过这些得看到代码才能解释清楚了。
展开全部
一下简单的原理:
首先模拟浏览获取网页。
其次分析网页的内容。
最后根据自己的需要把数据储存在数据库中。(超级简单吧)
备注一句:如果是分布式爬虫的话,我考虑考虑哈,毕竟我还是很菜的哈。
在我使用的HTTP请求不带COOKIE。
带Cookie的代码
using(Stream writer = Request.GetRequestStream()
{
byte[] data=Encoding.GetEncoding("UTF-8").GetBytes("cookie");
request.ContentLength = data.Length;
writer.Write(data,0,data.Length);
}
HTTP请求携带的POST数据
using (StreamWriter streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(postString);
streamWriter.Flush();
streamWriter.Close();
}
首先模拟浏览获取网页。
其次分析网页的内容。
最后根据自己的需要把数据储存在数据库中。(超级简单吧)
备注一句:如果是分布式爬虫的话,我考虑考虑哈,毕竟我还是很菜的哈。
在我使用的HTTP请求不带COOKIE。
带Cookie的代码
using(Stream writer = Request.GetRequestStream()
{
byte[] data=Encoding.GetEncoding("UTF-8").GetBytes("cookie");
request.ContentLength = data.Length;
writer.Write(data,0,data.Length);
}
HTTP请求携带的POST数据
using (StreamWriter streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(postString);
streamWriter.Flush();
streamWriter.Close();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我发,baidu hi联系,email? Q?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询