前几天看人写了个搜索引擎,手痒,也写了个,大家批批。
测试地址:
http://www.ahyouth.com/music
用php写的。
先说说我做法的思路吧:
大家经常看到,在一些个人网站中,经常提供一些功能,比如有直接登陆到其他网站信箱,或者由用户填写信息,并弹出窗口显示在baidu、google上搜索的内容。其实这些原理都很简单,就是自己写个表单,然后往那些服务器提交而已,这样做最终显示的是那些服务器的页面,而不是自己的页面,一看就知道是“假牙”。:)
我的思路跟这差不多,就是把用户需要搜索的信息,提交到其他搜索引擎,然后对搜索引擎的结果进行分析,按照我的风格把它显示出来。但是所有这些都是在我的php文件中完成的,最终数据也是在我的php文件中显示的。当然也是“假牙”,只不过看起来似乎有那么一回事而已。
怎么做的呢?
1)写个用户提交数据界面,如楼主的“搜索引擎”主界面。
2)处理页面:得到用户提交的数据->用php提供的socket函数,与搜索引擎服务器建立连接->连接建立后,按照http协议的格式向目标服务起发送数据(含用户提交的数据,一般都是用GET方式)->得到服务器返回的搜索结果(http报文)->分析结果特征,提取有用信息->显示。
我曾经用vb写过一个搜索歌曲的程序,其实也是利用这个原理。其难点是对返回的html进行分析,看是否搜索到内容,有的话,如何把一个个结果提取出来?记得当时底层通信使用过很多方法,比如用webbrowser控件,用socket控件,到后来使用winhttp组件等。不管你用何种通信方式,只要你能把需要搜索的关键字提交给搜索引擎服务器,并能取得返回的结果就可以了。
相关主题:
http://expert.csdn.net/Expert/topic/2818/2818552.xml?temp=.3490412