分类: 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 urllib2
import 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伪造。
相关文件:
|