做SEO的朋友都会遇到需要查询关键词排名的时候,如果有大量的关键词需要查询排名,还用手动一个个去搜索,一页页去检查在哪页,效率将会非常的慢。这里东尧用python开发了一个批量查询关键词百度PC排名的工具,简单快速就能获得所有排名结果。python基础教程工具怎么写
一、工具效果
检测结果:关键词+排名+排名url。结果文件采用追加模式,可以记录每次查询的时间和相应排名结果,方便对比。
多个排名结果只取第一个(也就是同一关键词只取排名最好的结果),如需要获取一个关键词的全部排名,可以联系东尧免费给你修改代码。
二、使用方法
运行环境:pycharm
关键词列表:在“关键词.txt”文件内按行写入需要查询的关键词,编码为utf-8(建议使用notepad++编辑)
指定网址:代码第66行处替换需要查询的网址
查询页数:代码第56行的第二个参数可设置想查询的页数(前二页11,前三页21,前四页31,以此类推)
结果保存:工具运行完成后会生成“排名结果.txt”的文件,采用追加的方式保存(也就是说历史查询结果的基础上追加新内容)
三、代码实现
这里只分享部分代码,全部的完整代码可关注“黑酷营销”回复“批量查排名工具”即可获得。
- def createKey(): #create baidu URL with search words
- with open(‘关键词.txt’) as f:
- for key in f:
- key_word.append(key)
- if __name__ == ‘__main__‘:
- createKey()
- with open(‘排名结果.txt’, ‘a’, encoding=’utf-8′) as f:
- f.write(‘***********’+time.strftime(“%Y-%m-%d %H:%M:%S”, time.localtime())+’***********’+’\n’)
- for k in key_word:
- t = 0
- key_url = parse.quote(k.strip())
- for p in range(0,41,10): # 第二个参数设置页数(前二页11,前三页21,前四页31,以此类推。)
- url = ‘https://www.baidu.com/s?wd=%s&pn=%d&rn=10′ % (key_url,p)
- html = download(url, user_agent=ua)
- a = re.findall(r'<div class=”result c-container “(.*?)class=”m”>百度快照</a>’, html, re.S | re.I)
- for i in a:
- b = re.search(r’data-tools=.*?{“title”:”.*?”,”url”:”(.*?)”}.*?><a class=”c-tip-icon”>’, i,
- re.I | re.S).group(1)
- c = re.search(r’id=”(.*?)”.*?tpl=”se.*?”‘, i, re.S | re.I).group(1)
- r = requests.head(b).headers[‘Location’]
- with open(‘排名结果.txt’, ‘a’, encoding=’utf-8′) as f:
- if ‘heiku8.com’ in r: #这里指定需要检测的网址
- line = k.strip() + ‘####第%s名:’ % c + r + ‘\n’
- f.write(line)
- f.flush()
- t = 1
- break
- else:
- continue
- if t == 1:
- break
- else:
- continue
- if t==0:
- with open(‘排名结果.txt’, ‘a’, encoding=’utf-8′) as f:
- line = k.strip() + ‘####排名>50’+ ‘\n’
- f.write(line)
- f.flush()
- print(‘完成!’)
东尧已经将本文涉及到的源代码放在了百度网盘中:
未经允许不得转载:SEO_网站优化_网络推广公司 » 做SEO利用Python写的排名查询工具