分类: Python/Ruby
2009-11-10 07:54:27
利用python检查搜索引擎的准确率
2009-11-10
磁针石:xurongzhong#gmail.com
腾讯搜搜的主页为:,比如输入“武冈”,则会返回包含如下信息的网页:a href="" id="res0" onclick="reportUrl(this,'1','1');st_get(this,'w.r',1);"这表示为搜索结果的第一条记录(res0,记录从0开始计数)。这样就方便使用正则表达式来抓取。
把要搜索的关键字和网址存入c:\word.txt,样式如下:武冈 武冈 输出结果存放于c:\out.csv。代码如下:
import urllib2import re f = open("c:\out.csv",'w')for line in open("c:\word.txt"): word,address= line.split() print "\n--------" + word,address, url = "" + word response = urllib2.urlopen(url) html = response.read() if address in html: text = address+'.*?res([0-9]*)' m = re.search(text, html, re.IGNORECASE) result = m.group(1) print "-----------ok", else: result = "Not found!" print "-----------!!!!!!!!----- fail", f.write(word+","+address+","+result+"\n")f.close() 如果数据量比较大的话,需要采用多线程或者进程。不过实际执行中,腾讯对单个IP不允许过多的搜索量,还需要研究IP伪造。
相关文件:
|