巧用web机器人搜索廉价二手房
日期:2007年8月23日 作者: 查看:[大字体 中字体 小字体]-
1. 问题
我需要一套二室一厅,价格在40万左右的,位于上海某几个区(例如徐汇,闵行区)的二手房。我理想中的房子当然需要满足很多条件,例如它必须是两室都朝南的房子,它的均价必须低于7000元每平方米,等等。
通常我使用上海热线的二手房网(http://secondhand.online.sh.cn/)来查找最新的二手房信息。
但是每天跟踪网站的最新二手房信息太累人了。二手房网每天都要添加很多最新信息,为了识别出符合我的条件的房子,我必须把所有这些信息都看一遍。整个过程非常浪费时间。
原因在于:
1. 网站只会在首页显示最新加入的一些二手房的*概要*信息。而我为了作出自己的判断,光是看概要信息是不够的,我必须看详细信息。而这就意味着我必须点击概要信息中的名为“详细”的超链接来下载详细信息的页面。
2. 并不是所有信息都是放在一个页面上的。事实上,上海热线的二手房网的信息是分页显示的,每个页面大概只显示10条信息。如果我需要看所有的信息的话,我需要看大概500-3000条信息左右(信息的多少和搜索条件是否严格,搜索的区域的大小有关系)。
上述1,2点的意思就是,即使我只需要看500条信息,我也需要看550个页面:
500/10(概要信息页面)+500*1(每条信息的详细页面)=550
每个页面载入的时间是10秒(实际取样的结果),我阅读每个页面的时间是25秒(我的阅读速度是非常快的了)。
550*(10+25)=19250秒=320分钟=5小时。
也就是说,光是阅读信息我就需要花5小时的时间。事实上,我还没有考虑对信息进行分析(例如列出均价最低的10处房产)的时间呢,这远比阅读更花时间。
2. 问题的本质
由于现在很多信息都放在网上了,类似的问题很常见。例如招聘,证券等等,都有同样的问题。这个问题就是,如何高效率地从internet上获得数据并进行分析。
3.一个方案
我看了一些国内的相关文章,这些文章的方案都是基于IE的自动化的。通常使用VB语言加上WebBrowser控件。
这种方案最主要的缺点是由于WebBrowser对很多数据操作进行了封装,使得本来很简单的操作变得麻烦无比(我猜原因是因为微软设计WebBrowser的目的是自动化IE的操作)。例如取得当前页面这样一个操作,如果使用WebBrowser开发的话竟然需要分取得当前页面,在某个事件中获得取得页面成功两个进程。为了使这两个进程通信又需要很多额外的工作。
我的方案是使用python开发一个脚本,因为python的库支持比较完备,这样还可以获得跨平台的额外好处。我使用结构化的设计,因为使用web机器人取得数据这样的事情本身就是结构化的。我将和具体网站相关的操作都封装在某几个函数内,这意味着该脚本如果经过适当的改写,还能有其他应用。也就是,这个脚本不仅仅是用于上海热线二手房网的,也不仅仅是先于搜索二手房的。
在写这个脚本之前,我已经有一些边写web机器人的经验,使用的语言包括VB,Java,Python等等。我认为目前我写的这个web机器人是比较成熟的。
这个方案的要点是这样的,首先向二手房网提交条件,然后获得分页搜索结果,从第一页中读取各信息条款(),读取共有多少页面等等必要的信息(这些信息的读取同样需要硬编码起始标志和结束标志)等等。然后根据这些信息模拟翻页,点击“详细”链接等动作。这些动作无非就是http标准中的get,post动作而已。
上述方案中的某些地方需要硬编码,必要的话需要分析浏览器客户端脚本(例如javascript):*各信息条款的起始标志和结束标志
*当前页面计数的起始标志和结束标志
*页面总数的起始标志和结束标志
*翻页动作中的超链接地址
*点击“详细”超链接中的超链接地址
获得的数据我都打印在屏幕上,这些数据使用逗号分割,如果希望把数据导入到文件中,可以使用管道机制。
例如,假设我写的脚本是house.py,你希望把house.py的数据导入到文件house.csv中去,你可以输入这样的命令:
python house.py > house.csv
接下来你可以就可以分析house.csv了。我通常用支持正则表达式的编辑器去掉house.csv中的一些格式化字符,再用Excel进行数据分析。
4. 具体实现以及代码
具体实现中还碰到一些小问题。例如为了支持中文,我必须再脚本的开头加上“# -*- coding: mbcs -*-”这一行。我上网需要使用指定的代理服务器,所以我使用urllib2库而不是urllib库。这些问题都已经在源代码中说明了。
下面就是源代码:
# -*- coding: mbcs -*-
#------------------user configuration------------begin
#ÊÇ·ñʹÓÃÐèÒªÑéÖ¤µÄhttp´úÀí£¿£¨½öÏÞÓÚ¼«ÉÙÊý¹«Ë¾,´ó¶àÊýÇé¿öÏÂÖÃΪ0)
- [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] 下一页
-
- 巧用web机器人搜索廉价二手房 相关文章:
- ·我所用的140个XP高级优化技巧!
- ·电脑高手的140个电脑技巧
- ·《拳皇2002》隐藏超杀出招表 - 技巧心得
- ·巧妙破解Win XP的登录密码简法
- ·电脑高手必备 Windows系统35招实用技巧
- ·Photoshop高手必知技巧大全
- ·市场营销技巧案例启示录:经典营销寓言故事
- ·Excel97使用技巧42招
- ·讨债公司如何讨债技巧方法
- ·js技巧收集(200多个)
- 巧用web机器人搜索廉价二手房 相关软件
- ·泰阳证券 V4.20.90 精巧版
- ·摄影技巧
- ·巧手进销存V7.4.070810 单机版
- ·巧克力大亨
- ·巧缘艳史
- ·《巧管家》应收应付款管理系统 V3.6
- ·水晶七巧板(Liquid Crystals Puzzle)
- ·XP实用技巧
- ·电脑技巧精彩文章100篇-(1) :《电脑技巧》 V2003年合订本
- ·试题分类评析与应试技巧
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:用 winetools 配置 wine 在 Debian 下运行 Win32 程序
精品推荐
热点TOP10
特别推荐
- ·如何用摄像头拍出漂亮的照片
- ·教你正确的调整DC的白平衡
- ·简单实现强大的加密功能——CryptoAPI
- ·每周电脑应用技巧荟萃(9月第4周)
- ·网络管理中的常用命令详解
- ·装机必备软件
- ·解析Windows系统远程控制的实现
- ·让系统快步如飞 正确设置Windows缓存
- ·Windows操作系统万能Ghost全攻略
- ·电脑蓝屏死机代码大集合
- ·轻轻松松实现MP3转CD
- ·火眼金睛识破QQ欺骗网络地址
- ·开机取消检查磁盘的方法
- ·开始→运行→输入的命令集锦
- ·帮你找回忘记的密码!
- ·史上最强网络相册Flickr完全玩转攻略
- ·电脑高手必备 Windows系统35招实用技巧
- ·系统维护四步曲
- ·系统清理软件逐个看
- ·数据恢复 硬盘分区误删后如何巧妙恢复
