2020
11/07
0:01
你的位置:msn.com > SEO教程 > python百度排名批量查询工具【7月17日改良版】

python百度排名批量查询工具【7月17日改良版】

发布时间:2020-11-07 00:01:42

原标题:python百度排名批量查询工具【7月17日改良版】


事先写过同样功能的工具,无与伦比功能极其简单,看上去像是蒙出来的结果,前几天想了想,加入了一些实用的功能,比如随机UA,不仅显示排名。还显示着陆页URL和title等,看上去强大了很多。话不多说,下面特别是代码:

#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(/982.jpg): #create baidu URL with search words checkWord = checkWord.strip() checkWord = checkWord.replace(' ', '+').replace('\n', '') baiduURL = ' >%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(/68975767.jpg): #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})&nbsp;</span>') match = pat.findall(t) cacheDate = match[0] return cacheDatedef getRank(checkWord, domain): #main line checkWord = checkWord.replace('\n', '') checkWord = decodeAnyWord(checkWord) baiduURL = createurl(/982.jpg) 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(/51296128.jpg) #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)

原标题:python百度排名批量查询工具【7月17日改良版】

基本词:python

转载请保留白文网址: http://www.www.d5897.com/a/489393.html
*特别声明:以上内容来自于网络收集,著作权申请流程权属原作者全部。请联系我们: admin#www.d5897.com (#换成@)。
您可能感兴趣的文章
Baidu