最近在微博上很流行“华师图书馆”这个微信应用,就是你发关键字过去,然后就会返回与关键字相关的图书信息。

豌豆荚截图20130328233325

其实原理很简单,通过关键字去华师的图书馆的网站去查询,然后将返回的数据(Html)进行解析即可。

其实获取某个网站的某些信息,最常用的手段就两种,一种就像天气宝宝那种,有API,通过调用API获取所需要的信息,另外一种便是通过访问相关网页,将其返回的信息解析,得到我们所需要的,“华师图书馆”这个应用便是这种。

好久没上过南中国一般大学的图书馆的网站了,上去看看,还是很烂。

南中国一般大学图书馆的网址是:http://lib.scnu.edu.cn/ ,输入关键字搜索,我输入android,它会跳到以下这个网址:

http://202.116.41.246:8080/opac/openlink.php?sort=M_TITLE&orderby=ASC&title=android&match_flag=forward&showmode=list

发现没,title=android,将这个android换成其他字或词试试,原来搜索就通过这样的一条URL,title=输入的关键字。

使用谷歌浏览器,点击F12,如下:

scnu

html的解析,使用php来解析哥还是第一次用,发现Simple HTML DOM这个挺好用的。

可以了解下:http://www.ecartchina.com/php-simple-html-dom/manual.htm

实现解析的代码很少,如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
require_once 'simple_html_dom.php';

function getLibrary($keyword) {
    $html = file_get_html("http://202.116.41.246:8080/opac/openlink.php?sort=M_TITLE&orderby=ASC&title=".$keyword."android&match_flag=forward&showmode=list");
    foreach ($html->find('div[id=list_books]') as $element){
        foreach ($element->find('h3') as $h3){
            foreach ($h3->find('a') as $a){
                echo $a->innertext.'&nbsp&nbsp&nbsp&nbsp'.$a->href.'<br>';
            }
        }
    }
}

?>

 

调用这个方法,输出如下:
scnu2
前面的是书名,后面是url的一部分,完整的url是http://202.116.41.246:8080/opac/item.php?marc_no=1000236034
只要修改下方法,便可接入到微信公众平台了。

_________________________________

来源:寒星晓月