Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18986679
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9298
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: Python/Ruby

2009-11-10 07:54:27

利用python检查搜索引擎的准确率

File information

2009-11-10

磁针石:xurongzhong#gmail.com

博客:oychw.cublog.cn

 

 
        腾讯搜搜的主页为:http://www.soso.com/,比如输入“武冈”,则会返回包含如下信息的网页:
a href="http://www.wugang.gov.cn/" id="res0" onclick="reportUrl(this,'1','1');st_get(this,'w.r',1);"
这表示www.wugang.gov.cn为搜索结果的第一条记录(res0,记录从0开始计数)。这样就方便使用正则表达式来抓取。
 
把要搜索的关键字和网址存入c:\word.txt,样式如下:
武冈        www.wugang.gov.cn
武冈        www.wugangren.com
输出结果存放于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 = "http://www.soso.com/q?pid=s.idx&w=" + 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伪造。
 
        相关文件:
文件:新建文件夹.rar
大小:4KB
下载:下载

 
阅读(15647) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~