就是一个简单的python查询百度关键词排名的函数,以下是一些简介:
1、UA随机
2、操作简单方便,直接getRank(关键词,域名)就可以了
3、编码转化,
python实现百度关键词排名查询
。编码方面应该没啥问题了。4、结果丰富。不仅有排名,还有搜索结果的title,URL,快照时间,符合SEO需求
5、拿来做个软件或者自己用都很方便。
功能是单线程实现,速度慢,大家可以参考修改成自己需要的。
复制代码代码如下:
#coding=utf-8
import requests
import BeautifulSoup
import re
import random
def decodeAnyWord(w):
try:
w.decode('utf-8')
except:
w = w.decode('gb2312')
else:
w = w.decode('utf-8')
return w
def 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 baiduURL
def 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.content
def getLastURL(rawurl): #get final URL while there're redirects
r = requests.get(rawurl)
return r.url
def getAtext(atext):#get the text with and
pat = re.compile(r'(.*?)')
match = pat.findall(atext.replace('\n', ''))
pureText = match[0].replace('', '').replace('', '')
return pureText.replace('\n', '')
def getCacheDate(t):#get the date of cache
pat = re.compile(r'.*?(\d{4}-\d{1,2}-\d{1,2})')
match = pat.findall(t)
cacheDate = match[0]
return cacheDate
def 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('', '').replace('', '')): #改正则
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)
您可能感兴趣的文章:
python爬虫教程之爬取百度贴吧并下载的示例
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
python使用win32com在 插入html元素示例
python3.3教程之模拟百度登陆代码分享
python模拟登录百度代码分享(获取百度贴吧等级)
python模拟登录百度贴吧(百度贴吧登录)实例
python实现的一只从百度开始不断搜索的小爬虫
用python下载 的代码
Python使用Socket(Https)Post登录百度的实现代码
phpsir 开发 一个检测百度关键字网站排名的python 程序
QQ空间 搜狐微博 人人网 开心网 百度搜藏更多
Tags:python 百度 关键词
复制链接收藏本文打印本文关闭本文返回首页
上一篇:python获取网页状态码示例
下一篇:windows下wxPython开发环境安装与配置方法
相关文章
2013-11-11python迭代器的使用方法实例
2013-11-11python解析json实例方法
2014-02-02python使用7z解压软件备份文件脚本分享
2014-04-04python使用PyFetion来发送短信的例子
2014-02-02python3.3实现乘法表示例
2014-04-04python抓取网页图片并放到指定文件夹
2011-01-01初学python数组的处理代码
2011-05-05Python模块学习 re 正则表达式
2014-02-02python使用递归解决全排列数字示例
2012-10-10python笔记(1) 关于我们应不应该继续学习python
文章评论
最 近 更 新
Python 时间处理datetime实例
使用scrapy实现爬网站例子和实现网络爬虫
Python自动化测试工具Splinter简介和使用
python函数返回多个值的示例方法
Python使用
稀疏矩阵节省内存实例使用BeautifulSoup爬虫程序获取百度搜索结
Python 分析Nginx访问日志并保存到MySQL数
Python ORM框架SQLAlchemy学习笔记之数据
python zip文件 压缩
python使用os模块的os.walk遍历文件夹示例
热 点 排 行
Python入门教程 超详细1小时学会
python 中文乱码问题深入分析
比较详细Python正则表达式操作指
Python字符串的encode与decode研
Python open读写文件实现脚本
Python enumerate遍历数组示例应
Python 深入理解yield
Python+Django在windows下的开发
python 文件和路径操作函数小结
python 字符串split的用法分享