用WPF+MongoDB开发房产信息收集器(1)

我相信,房子是现在压在众多国人肩上的最大负担。我也是其中一员,我也在关注房子。而我又是一个正在用Silverlight开发项目、正在学习MongoDB的程序员,所以,很自然的我想为我自己,也为众多在关注房子的朋友开发一个“房产信息采集器”。

房产信息采集器:

  1. 获取房产网站相应的二手房、一手房信息;
  2. 可以让用户自主选择需要下载的区域的房产信息;
  3. 可以过滤重复数据、虚假数据;
  4. 有新信息时可以提醒;
  5. 可以设置是否关注或不感兴趣某一楼盘、某一区域的楼盘;
  6. ......

今天主要实现了从网站下载、解析数据,并没有将数据保存到数据库。先上图:

要想从网站上获取房产信息首先要知道从哪里去下载、解析这些数据。

很简单,现在的每一个网站都有搜索功能,而搜索结果的都是分页的,这些分页都是有规律的,只要找到这个规律,源源不断的数据就有了。 当然,搜索结果的内容只是一个概况,如果要真正解析数据,还必须进入对应房产信息的页面再下载解析。 这些都没有什么技术的难点,就是需要去分析网站的html代码,有点烦而已。各位自己琢磨下就完全OK了。

这里推荐一个第三方解析下载Html的工具:Html Agility Pack 至于具体怎么用,CodePlex是的Demo我觉得已经说明的很清楚了,各位可以自己看下。

今天在用这个控件的时候遇到的几个问题跟大家分享下。

  1. 用Html Agility Pack来直接下载解析网站的时候会遇到中文乱码的问题。 我用的方法是用HttpWebRequest来下载网页的内容,返回一个Stream。
    1 HttpWebRequest req = WebRequest.Create(new Uri(url)) as HttpWebRequest; 
    2 req.Method = "GET";
    3 WebResponse rs = req.GetResponse();
    4 Stream rss = rs.GetResponseStream();
    5 return rss;
    然后再用HtmlAgilityPack。后面的解析都是使用HtmlAgilityPack进行的。
  2. XPath的路径问题,/开头的XPath路径表示是从根目录开始的。所以无论你想从一个已经选择好了的HtmlNode下获取其子节点,注意XPath不能用/开头。

今天只是开始,我会坚持下去,一直完成、完善这个工具的。如果各位有什么意见或者感觉需要添加的功能,在下感激不尽。

汇聚杭州外卖:外卖汇
标签: WPF MongoDB
posted @ 2011-10-23 23:20 随风逝去(叶进) 阅读(2051) 评论(18) 编辑 收藏

 回复 引用 查看   
#1楼 2011-10-24 00:14 Tony Qu      
比较关心楼主爬了哪些网站,呵呵
 回复 引用 查看   
#2楼 2011-10-24 00:19 贝壳笨      
有开源就好了,或者一起开发!~
 回复 引用 查看   
#3楼[楼主] 2011-10-24 00:21 随风逝去(叶进)      
@Tony Qu
现在还只是爬了一个网站,肯定会再增加,也会考虑让用户自主选择抓取的网站。而不是固定死。

 回复 引用 查看   
#4楼[楼主] 2011-10-24 00:22 随风逝去(叶进)      
@贝壳笨
现在还太粗糙,我只是实现了解析一个网站的数据,也没有考虑性能等问题,也没有保存到数据库。接下去会不断完善,等完善之后也许会考虑开源出来,那样更有用些~现在还只是一个框架而已。

 回复 引用 查看   
#5楼 2011-10-24 08:45 han130634      
呵呵好东西!有时间就仔细研究!
 回复 引用 查看   
#6楼 2011-10-24 09:09 笨笨的猪      
152 这个号码的人好多的房子...
 回复 引用 查看   
#7楼 2011-10-24 09:25 ㄟ荖樹炪厊ㄖ      
强烈期待楼主的后续开发~
 回复 引用 查看   
#8楼 2011-10-24 09:45 River.      
一看就是中介
 回复 引用 查看   
#9楼[楼主] 2011-10-24 11:31 随风逝去(叶进)      
@ㄟ荖樹炪厊ㄖ
谢谢支持。接下去我会简单介绍下,用线程和定时器来获取数据,以防页面假死。

 回复 引用 查看   
#10楼[楼主] 2011-10-24 11:32 随风逝去(叶进)      
@River.
@笨笨的猪
这个很显然是中介,我之前没有想到,接下去会增加一个是否中介的标志,便于区分。

 回复 引用 查看   
#11楼 2011-10-24 12:29 magicDict      
格式设置的很好
 回复 引用 查看   
#12楼 2011-10-24 13:05 最懒的程序员      
能不能加个房屋价格变化曲线。针对同一个房子,中介经常根据行情修改价格,能显示价格曲线,能大概知道当前市场行情。
 回复 引用 查看   
#13楼[楼主] 2011-10-24 13:54 随风逝去(叶进)      
@最懒的程序员
很好的一个建议,我记下了。我会尽量实现。谢谢 非常谢谢

 回复 引用 查看   
#14楼 2011-10-24 16:55 尊敬      
不错好东西。我也在使用WPF,楼主的datagrid挺漂亮,能赐教吗?
 回复 引用 查看   
#15楼[楼主] 2011-10-24 17:22 随风逝去(叶进)      
@尊敬
这个是一个付费的第三方控件~Telerik

 回复 引用 查看   
#16楼 2011-10-24 18:09 尊敬      
那楼主是买的,还是破解的
 回复 引用 查看   
#17楼[楼主] 2011-10-25 10:14 随风逝去(叶进)      
@尊敬
买的~

 回复 引用 查看   
#18楼 2011-10-25 10:22 cocoSmile      
@随风逝去(叶进)
好像一套要888刀噢。(*^__^*) 嘻嘻……,买的。(*^__^*) 嘻嘻……

Free Web Counter
Free Web Counter