自己做站点的时候,都看看收录和关键词排名什么的,所以打造的这个批量关键词查询工具。

#encoding:utf-8
import urllib,re,random,time,sys,StringIO,socket
try:import pycurl
except:pass
from bs4 import BeautifulSoup
score={1: 28.56,2: 19.23,3: 10.20,4: 8.14,5: 7.50,6: 5.72,7: 4.01,8: 4.41,9: 5.53,10: 6.70,}#获取根域名,百度产品直接显示子域名
def root_domain(url):if 'baidu.com' in url:return urlelse:try:url = url.replace('http://', '')l = ['.com.cn', '.org.cn', '.net.cn', '.gov.cn']for suffix in l:if suffix in url:return re.search('^(.*?\..*?)*([^.]+?\.[^.]+?\.[^.]+)', url).group(2)return re.search('^(.*?\..*?)*([^.]+?\.[^.]+)', url).group(2)except:return '-'def curl(url, debug=False, **kwargs):list=['Mozilla/5.0 (Windows NT 5.1; rv:37.0) Gecko/20100101 Firefox/37.0','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36']randhead=random.sample(list,1)while 1:try:s = StringIO.StringIO()c = pycurl.Curl()c.setopt(pycurl.URL, url)c.setopt(pycurl.REFERER, url)c.setopt(pycurl.FOLLOWLOCATION, True)c.setopt(pycurl.TIMEOUT, 60)c.setopt(pycurl.ENCODING, 'gzip')c.setopt(pycurl.USERAGENT, '%s'%randhead[0])c.setopt(pycurl.NOSIGNAL, True)c.setopt(pycurl.WRITEFUNCTION, s.write)for k, v in kwargs.iteritems():c.setopt(vars(pycurl)[k], v)c.perform()c.close()return s.getvalue()except:if debug:raisecontinuedef get_baidudata(keyword,rn):search_url = 'http://www.baidu.com/s?wd=%s&rn=%d'%(urllib.quote(keyword),rn)pagetext = curl(search_url)  #获取百度搜索结果源代码while 'http://verify.baidu.com' in pagetext: #判断 如果查询过程中出现验证码则提示并停止10分钟,然后重新查询print u"查询过程出现验证码,休息10分钟",keywordtime.sleep(600)pagetext = curl(search_url)else:soup = BeautifulSoup(pagetext)data = soup.find_all("div",attrs={'class':'result c-container '})#提取自然排名结果return datareturndef get_rank_data(keyword,rn):data = get_baidudata(keyword,rn)#获取自然排名结果items = {}for result in data:g = result.find_all("a",attrs={'class':'c-showurl'})#获取主域名if g:site=re.search(r'([a-zA-Z0-9\.\-]+)',g[0].text)host = site.groups(1)[0]host=root_domain(host)#获取根域名rank = int(result['id'])#排名if host not in items.keys():items[host] = []items[host].append(score[rank])else:items[host].append(score[rank])return items#返回单个词前十数据def get_keywords(filename):#读取关键词返回列表kwfile = open(filename,'r')keywords = kwfile.readline()kw_list = []while keywords:kw = keywords.strip()kw_list.append(kw)keywords = kwfile.readline()kwfile.close()return kw_listdef get_all_data(filename,rn):#单域名数据合并kw_list = get_keywords(filename)items = {}for i,kw in enumerate(kw_list,1):print i,kwitem = get_rank_data(kw,rn)for host,rank in item.items():if host not in items.keys():items[host] = rankelse:items[host].extend(rank)return itemsdef get_score(filename,rn):data = get_all_data(filename,rn)fh = open('score.csv','a+')fh.write('host,kws,average_score,host_score,\n')for host,rank in data.items():if host != None:host = host.encode('utf-8')else:host = 'error page'kws = len(rank)#关键词数host_score = sum(rank)#总得分average_score = host_score/kws#平均分fh.write(host+','+str(kws)+','+str(average_score)+','+str(host_score)+'\n')returnif __name__=="__main__":file=raw_input("请输入包含关键词的文件名:")

  

转载于:https://www.cnblogs.com/68xi/p/9348395.html

python打造批量关键词排名查询工具相关推荐

  1. 百度关键词排名查询工具

    通过百度关键词排名查询工具,可以快速得到当前网站的关键字在百度收录的排名情况!便于了解网站自身关键词排名的优势与略施,从而更好的进行网站优化调整关键词排名 状况.关键词排名是一种在搜索引擎搜索结果中以 ...

  2. 关键词排名查询工具 - Search Engine Result Position Checker

    站长, 电子商务人员和搜索引擎优化研究员都知道, 关键词在搜索引擎中的排名至关重要.  为了满足这个普遍的需求, UESEO.org开发了 关键词排名查询工具 (Search Engine Resul ...

  3. 关键词排名查询工具主要有哪些?

    关键词排名查询工具是每一个seo站长都会经常使用到的工具,而我们做网站优化的目的就是给网站关键词有很多的排名,只有排名做上去了网站的点击量才会有所提升,因此我们需要不断的去查询网站关键词排名,而如果一 ...

  4. 亚马逊查询关键词排名的工具_拼多多关键词排名查询工具怎么查关键词的?

    拼多多商家在编辑商品标题和开直通车的时候,都需要先了解关键词的质量分和排名,才能更好的推广,怎么找到有效高效的关键词呢?还有就是对手的开车关键词和出价,这些都是商家在分析数据的时候,比较需要的. 商家 ...

  5. 【python】百度关键词排名查询实现

    python版本:3.7.1 安装依赖包requests  re urllib bs4...... 安装方法:打开python安装目录,找到scripts的目录,按住shift出现打开命令窗口,进入后 ...

  6. 亚马逊查询关键词排名的工具_查询关键词排名收录的作用与操作

    经测试,清除Cookies后,排名查询工具在火狐浏览器和谷歌浏览器的排名查询结果中:自然排名是一样的,广告排名会差0-5位,所以火狐插件的排名也是可靠的,最好先清除Cookies,再设置亚马逊邮编,再 ...

  7. 搜搜关键词排名查询 - 站长工具

    搜搜关键词排名查询 经常去站长工具那里,不过只提供了百度关键词排名功能,没有提供搜搜的关键词排名. 只好自己开发一个,方便自己,也方便他人 功能还在继续完善中,希望有识之士多提建议. http://s ...

  8. 观其关键字排名查询工具_seo常用工具统计

    网站优化常用工具有哪些? 一般站长都用利用这些工具,可以让你的优化更省时省力,所有工具,用相关的名称,在搜索引擎中均可以搜索得到,这里就不提供下载的链接了. 1. 分析工具 受欢迎的一款网站优化工具, ...

  9. 网站排名查询软件alexa_想要SEO优化做得好,网站排名查询工具少不了

    在如今这个互联网时代,很多企业都在做网站,尤其是那些有业务和产品销售的网站,能够在搜索引擎上排名靠前,是最希望看到的事,而这就需要用到SEO优化这份工作了. 当然,做SEO优化并不是那么容易的事,不仅 ...

  10. php 查询数组中某条记录的排名,百度排名查询工具:PHP里的array_search()使用很痛苦...

    为什么写这样1个题目呢.其实最近一直在做一款就这儿工具,就这儿百度收录排名查询工具:http://shoulu.jzask.com/.问题就是在这里产生的的. 这个工具主要2方面的功能.第一,批量查询 ...

最新文章

  1. php i 获取不到值,thinkphp I方法讀取不到值~~~
  2. 古典人像秒变3D,视角还能随意切,华为上交联手出品
  3. python十四:全局变量(global)与局部变量与上一级变量(nonlocal)
  4. Ubuntu之bashrc:成功解决Ubuntu系统内出现的conda:未找到命令
  5. Kotlin 基础语法
  6. python list遍历定位元素_python for循环,第二遍定位不到元素?
  7. clodeblocks debug断点调试_idea debug调试————简单常用,适合初学者
  8. ffmpeg在windows下的编译
  9. artcore html5,值得收藏的25款免费响应式网页模板_CSS_网页制作
  10. 基于.NET实现数据挖掘--聚类分析算法
  11. Atitit redis使用场合总结 使用场景 目录 1.1. 3. Session 存储 1 1、 配置数据查询 1 2. 排行榜应用,取TOP N操作 1 1.2.     1、查找最
  12. StrongShop跨境电商系统源码 支持多语言多货币
  13. 匹配非零开头的最多带两位小数的数字正则表达式
  14. 谈谈网络通信中的 ACK、NACK 和 REX
  15. 2018第九届蓝桥杯B组决赛题解第四题 调手表(BFS)
  16. 项目管理sod_Microsoft Visual SourceSafe(项目文件管理) V6.0 最新中文版(图文)
  17. LDA与PCA数据降维算法理论与实现(基于python)
  18. switch中的参数类型
  19. 启用Windows沙盒
  20. 前端基础入门学习线路之CSS渐变色效果的实现方法

热门文章

  1. 2021年中国危险废物产量、处理量及回收利用量分析[图]
  2. 干货分享——CAD动态块
  3. 谈一谈企业部署erp系统的三大时间段
  4. 网络共享计算机网络无法访问,局域网电脑无法访问共享文件网络共享失败怎么解决...
  5. 如何解决苹果账号续费时支付失败的问题
  6. 垃圾分类-特别是有害垃圾
  7. R语言使用lm函数构建线性回归模型、线性回归模型的诊断、使用influence.measures函数识别有影响力的观察值
  8. Html论坛提问页面,技术分享 - 制作论坛发帖页面(采用html()方式、操作节点的方式)...
  9. 同一局域网入侵_局域网IP地址冲突、环路?千兆接入交换机选型很重要
  10. 单元测试总结反思_语文期中考试总结反思