图书比价原型

    技术2025-04-24  16

    图书比价原型

    在完善图书查询原型,增加收藏夹功能中写了个图书查询方面的原型。是为了应付图书企业应用。其实,移动设备,主要应该是最终消费者。

    比如这样的场景,其实我就很需要,在书店看书,通过扫描ISBN号,查看对该书的书评,然后觉得确实不错,还想看看各大网上书店的价格。

    对于书评,还是比较简单的,豆瓣提供了公开的API。但是比价没有。不过豆瓣提供了网页。比如:

    http://book.douban.com/subject/4803982/buylinks

    这是《团队之美》这本书的比价页面。

    可以看到主要网上书店都包括了。思路是只要我们能够解析该链接的页面,把价格等信息抽取出来。

    在这里我尝试了三种办法:

    通过android自带的xmlpull解析所需节点的信息,但是不行,因为该页面不是标准的xhtml页面,虽然该页面中声明了xhtml页面的schema,有标签没有结束标志,造成解析异常; 使用正则表达式,定位所需标签中的内容,但是也不成功,因为前后查找中的前查找比较难写,中间字符变化而且很多,等有时间再琢磨,这种方法的好处是无需附加类库支持; 使用htmlparser,也就是下文中使用的方法,缺点是要增加类库,不过使用起来还是挺省心的。

    代码见:

     

    http://easymorse.googlecode.com/svn/tags/compare.price-0.1/

    运行的样子:

    实际使用wifi应该耗时会减少一些,因为这里使用3G拨号需要一点儿时间。

    使用htmlparser,官方网址:

    http://htmlparser.sourceforge.net/

    使用的它的filter方式,即,通过filter,过滤出想要的html节点列表。

    我过滤出10个A节点,然后,我知道前两个节点是无用的。后面8个A节点,成对出现,是各个网上书店的名称和实际售价。

    最新回复(0)