请教如何用.NET做实时数据采集

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:37:55
我想把GOOGLE的生活中的出租数据实时放在我自己的网上,因为GOOGLE实时是更新的,但是我不希望像用ifrom一样把全部都弄过来,有关GOOGLE的东西我都不要,只要其中的数据,谢谢怎么实现呢

http://shenghuo.google.cn/shenghuo/search?a_y0=9&a_n0=%E6%88%BF%E5%B1%8B&a_n1=%E5%9F%8E%E5%B8%82&a_y1=1&a_o1=0&a_v1=%E6%AD%A6%E6%B1%89&a_n2=%E7%B1%BB%E5%88%AB&a_y2=1&a_o2=0&a_v2=%E5%87%BA%E7%A7%9F

分析页面源代码,结构化其中的数据(主要是字符串的处理和匹配,推荐正则表达式)

另外说一句,你这样是不厚道的

这样的话就只能自己写个 爬虫了 只爬你需要的那个网页 然后不管你用正则表达式还是 截取字符串的方法都能 搞到你所需要的数据 一次做个 几十个或者 100来个线程 会很快的
关键代码:
WebClient client = new WebClient();
string html = client.DownloadString(url);
通过分析你那网页的源码 发现 那些一行行的数据是有规律的都是以
<tr id="sprr 加上id号 开头 以 </tr>结尾
所以用正则表达式形式只保存那些格式相同的
Regex r = new Regex(@"<tr id="sprr([\w\W]*?)</tr>");
MatchCollection ms = r.Matches(html);
这保存的就是源码形式 到这你应该就明白了

ps 正如楼上所说的 确实很不厚道

下面的程序是我自己写的,可以获取urls的网页源代码。你可以根据返回的tempstr,你再找到他读取数据那里的规律,再用Substring IndexOf LastIndexOf这些函数来截取你想要的内容保存到数据库,或者用
正则表达式也可以。看你自己的熟悉程度了。 至于你要实时的,那你定期执行这个程序就可以了啊。你把已采集的地址存一下,以后采集保存前判断下有没有保存同样的数据就可以了。

public string getfiles(string urls)
{
WebRequest wrq;
HttpWebResponse wrp;

wrq=HttpWebRequest.Create(urls);
wrp=(HttpWebResponse)wrq.GetResponse();
Stream resStream=wrp.