查询百度中关键词排名,百度关键词排名,就是一个简单的pytho
查询百度中关键词排名,百度关键词排名,就是一个简单的pytho
就是一个简单的python查询百度关键词排名的函数,以下是一些简介:
1、UA随机
2、操作简单方便,直接getRank(关键词,域名)就可以了
3、编码转化。编码方面应该没啥问题了。
4、结果丰富。不仅有排名,还有搜索结果的title,URL,快照时间,符合SEO需求
5、拿来做个软件或者自己用都很方便。
缺点是单线程,速度慢
#coding=utf-8import requestsimport BeautifulSoupimport reimport randomdef decodeAnyWord(w): try: w.decode('utf-8') except: w = w.decode('gb2312') else: w = w.decode('utf-8') return wdef createURL(checkWord): #create baidu URL with search words checkWord = checkWord.strip() checkWord = checkWord.replace(' ', '+').replace('\\n', '') baiduURL = 'http://www.baidu.com/s?wd=%s&rn=100' % checkWord return baiduURLdef getContent(baiduURL): #get the content of the serp uaList = ['Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+TencentTraveler)', 'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729)', 'Mozilla/5.0+(Windows+NT+5.1)+AppleWebKit/537.1+(KHTML,+like+Gecko)+Chrome/21.0.1180.89+Safari/537.1', 'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)', 'Mozilla/5.0+(Windows+NT+6.1;+rv:11.0)+Gecko/20100101+Firefox/11.0', 'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+SV1)', 'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+GTB7.1;+.NET+CLR+2.0.50727)', 'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+KB974489)'] headers = {'User-Agent': random.choice(uaList)} r = requests.get(baiduURL, headers = headers) return r.contentdef getLastURL(rawurl): #get final URL while there're redirects r = requests.get(rawurl) return r.urldef getAtext(atext): #get the text with <a> and </a> pat = re.compile(r'<a .*?>(.*?)</a>') match = pat.findall(atext.replace('\\n', '')) pureText = match[0].replace('<em>', '').replace('</em>', '') return pureText.replace('\\n', '')def getCacheDate(t): #get the date of cache pat = re.compile(r'<span class="g">.*?(\\d{4}-\\d{1,2}-\\d{1,2}) </span>') match = pat.findall(t) cacheDate = match[0] return cacheDatedef getRank(checkWord, domain): #main line checkWord = checkWord.replace('\\n', '') checkWord = decodeAnyWord(checkWord) baiduURL = createURL(checkWord) cont = getContent(baiduURL) soup = BeautifulSoup.BeautifulSoup(cont) results = soup.findAll('table', {'class': 'result'}) #find all results in this page for result in results: checkData = unicode(result.find('span', {'class': 'g'})) if re.compile(r'^[^/]*%s.*?' %domain).match(checkData.replace('<b>', '').replace('</b>', '')): #改正则 nowRank = result['id'] #get the rank if match the domain info resLink = result.find('h3').a resURL = resLink['href'] domainURL = getLastURL(resURL) #get the target URL resTitle = getAtext(unicode(resLink)) #get the title of the target page rescache = result.find('span', {'class': 'g'}) cacheDate = getCacheDate(unicode(rescache)) #get the cache date of the target page res = u'%s, 第%s名, %s, %s, %s' % (checkWord, nowRank, resTitle, cacheDate, domainURL) return res.encode('gb2312') break else: return '>100'domain = 'www.baidu.com' #set the domain which you want to search.print getRank('百度', domain)#该片段来自于http://byrx.net
相关内容
- 使用Python生成Excel格式的图片,,之前曾看到过 一篇报道
- 实现tee命令,tee命令,# -*- coding
- 初学者实现计算器功能,初学者实现计算器,没有使用任
- 国外赌场热门游戏Craps,国外热门游戏craps,运行方法:
- python生成sitemap.xml,pythonsitemap.xml,# _*_ coding
- django 微博链接登陆,django微博链接,看了网上的认证。
- 日期时间转换,日期转换,工具是经常被用到的,可在
- 命令行的Google英语翻译(带语音),google英语翻译,使用
- 用python爬虫抓站的一些技巧总结,python爬虫技巧总结
- project euler #10:Summation of primes,,The sum of t
评论关闭