python 解析搜索引擎关键词

需求是:为了知道搜索引擎通过哪些关键词到达站点,需要对url进行反编码,google了一下(怕没机会用了),看到可可熊的链接:http://cocobear.info/blog/2008/08/11/tool-of-python-url-encode/,还有其他不错链接,在此表示感谢。

借鉴了转码方法,主要针对国内几个主流搜索引擎,代码如下,留作纪念:

 

import urllib
import sys,getopt,re
    
searchEngines = {'http://www.google.com': 'q=',
                 'http://www.google.cn': 'q=',
                 'http://www.baidu.com': 'wd=',
                 'http://www.soso.com': 'w=',
                 'http://www.youdao.com': 'q='}
    
def getQueryString(url):
    queryStr = ''
    for k, v in searchEngines.items():
        index = url.find(k)
        if index == 0:
            print k
            startIndex = url.find(v)
            print startIndex
            if startIndex > 0:
                endIndex = url.find('&', startIndex)
                print endIndex
                if endIndex == -1:
                    queryStr = url[startIndex+len(v):]
                else:
                    queryStr = url[startIndex+len(v):endIndex]
    return queryStr
 
def url2read(s):

    s = urllib.unquote(s)
    try: 
            print '11111111111111\n'
            s = s.decode('utf-8')
    except UnicodeDecodeError:
            print '2222222222222\n'
            s = s.decode('gbk')

if __name__ == "__main__":
#    url2read('%C0%F6%BD%AD')
#    url2read('%E4%B8%BD%E6%B1%9F')
    s1 = getQueryString(r'http://www.google.com/search?hl=en&source=hp&q=%E4%B8%BD%E6%B1%9F&aq=f&oq=&aqi=');
    s2 = getQueryString(r'http://www.baidu.com/s?wd=%C0%F6%BD%AD')
    url2read(s1)
    url2read(s2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值