利用python来完成关键词挖掘,获取关键词数据是seo中比较基础的部分,渠道很多,开水以前也有专门的讲解文章搜索需求挖掘,推广词库收集整理。这次我们就其中关键词搜集的一种方式来展开,来采集凤巢的关键词数据,对关键词的分析,以及使用才是重点!

python与seo

为什么要使用python来完成呢,因为如果直接在凤巢后台操作,不可以批量完成,拓展大量的关键词就非常的麻烦;也有人会说到有一系列的软件,软件有一个缺点就是要登录,对我们的账户安全没有保障,在一个就是还得忍受软件提供商的广告,能自己做的就不用别人的。来说说实现Python批量挖掘百度凤巢关键词过程的一些要点。

python登录百度凤巢

百度、新浪等大平台的模拟登录本身难度就比较大,百度凤巢又涉及资金和短信验证,所以模拟登录成本较高。这里我们采用简单的操作方法,利用cookies来完成登录,这样只要在自己的浏览器登录账户,抓一下cookies就可以完成登录了。

凤巢关键词提取

通过抓包发现凤巢的关键词规划师返回的是json数据,使用json模块把返回的json数据可识别,直接['word']提取我们数据就可以了。

python代码

# -*- coding: utf-8 -*-

"""

verseion: beta2.1

说明:

百度凤巢挖词脚本 (代码符合PEP8标注)

请勿用于任何商业用户,版权最终归作者所有

"""

import requests

import json

import time

import sys

reload(sys)

sys.setdefaultencoding( "utf-8" )

class UnicodeStreamFilter:

def __init__(self, target):

self.target = target

self.encoding = 'utf-8'

self.errors = 'replace'

self.encode_to = self.target.encoding

def write(self, s):

if type(s) == str:

s = s.decode("utf-8")

s = s.encode(self.encode_to, self.errors).decode(self.encode_to)

self.target.write(s)

if sys.stdout.encoding == 'cp936':

sys.stdout = UnicodeStreamFilter(sys.stdout)

#以上为cmd下utf-8中文输出的终极解决方案!

def url_data(key,config,cookie,shibai=3):

headers={

'Accept': '*/*',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.8,en;q=0.6',

'Connection': 'keep-alive',

'Content-Type': 'application/x-www-form-urlencoded',

'Cookie': cookie,

'Host': 'fengchao.baidu.com',

'Origin': 'http://fengchao.baidu.com',

'Referer': 'http://fengchao.baidu.com/nirvana/main.html?userid=%s' % config['userid'],

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 '

'(KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'

}

params={

"logid":401075077,

"query":key,

"querySessions":[key],

"querytype":1,

"regions":"16",

"device":0,

"rgfilter":1,

"entry":"kr_station",

"planid":"0",

"unitid":"0",

"needAutounit":False,

"filterAccountWord":True,

"attrShowReasonTag":[],

"attrBusinessPointTag":[],

"attrWordContainTag":[],

"showWordContain":"",

"showWordNotContain":"",

"pageNo":1,

"pageSize":1000,

"orderBy":"",

"order":"",

"forceReload":True

}

from_data={

'params':json.dumps(params),

'path':'jupiter/GET/kr/word',

'userid':config['userid'],

'token':config['token'],

'eventId':config['eventId'],

'reqid':config['reqid']

}

qurl="http://fengchao.baidu.com/nirvana/request.ajax?path=jupiter/GET/kr/word&reqid=%s"%config['reqid']

try:

whtml=requests.post(qurl,headers=headers,data=from_data)

except requests.exceptions.RequestException:

resultitem={}

erry="请求三次都是错误!"

if shibai > 0:

return url_data(key,config,cookie,shibai-1)

else:

whtml.encoding="utf-8"

try:

resultitem = whtml.json()

except ValueError:

resultitem = {}

erry = "获取不到json数据,可能是被封了吧,谁知道呢?"

else:

erry = None

return resultitem,erry

config={

'userid': ,

'token':' ',

'eventId':' ',

'reqid':' '

}

cookie=" "

def key_data(resultitem):

kws=['关键词\t日均搜索量\tpc\t移动\t竞争度\n']

try:

resultitem=resultitem['data']['group'][0]['resultitem']

except (KeyError, ValueError, TypeError):

resultitem=[]

erry="没有获取到关键词"

else:

for items in resultitem:

word=items['word']

pv=items['pv']#日均搜索量

pvPc=items['pvPc']

pvWise=items['pvWise']

kwc=items['kwc']#竞争度

kwslist=str(word)+'\t'+str(pv)+'\t'+str(pvPc)+'\t'+str(pvWise)+'\t'+str(kwc)+'\n'

kws.append(str(kwslist))

print word,pv,pvPc,pvWise,kwc

erry=None

return kws,erry

sfile = open('resultkeys.txt', 'w') # 结果保存文件

faileds = open('faileds.txt', 'w') # 查询失败保存文件

for key in open("cigeng.txt"):

key=key.strip()

print "正在拓展:%s"%key

resultitem,erry=url_data(key,config,cookie)

if erry:

print key,erry

faileds.write('%s\n' % key)

faileds.flush()

continue

keylist,erry=key_data(resultitem)

if erry:

print key,erry

faileds.write('%s\n' % word)

faileds.flush()

continue

for kw in keylist:

sfile.write('%s\n'%kw)

faileds.flush()

continue

代码中config和cookies的内容需要抓包获取对应数据填写即可。

python关键词_python与seo,Python批量挖掘百度凤巢关键词相关推荐

  1. python关键词_Python批量挖掘百度凤巢关键词

    利用python来完成关键词挖掘,获取关键词数据是seo中比较基础的部分,渠道很多.这次我们就其中关键词搜集的一种方式来展开,来采集凤巢的关键词数据,对关键词的分析,以及使用才是重点! python与 ...

  2. python关键词挖掘_Python批量挖掘百度凤巢关键词数据

    [seo工具]关键词挖掘,获取关键词数据比较基础的部分,渠道很多,这次我们来采集凤巢的关键词数据,对关键词的分析,以及使用才是重点!我们先解决基础部分: 每次使用脚本需抓包获取cookies数据登陆百 ...

  3. PYTHON批量挖掘百度下拉框关键词

    百度下拉框的关键词,一直是SEO关键词拓展的利器,只要在搜索框中输入一个关键词,就可以得到一批相关词.我有个小技巧,可瞬间提升上百倍的挖掘效率.并且通过Python实现后,完全可用于大规模关键词的批量 ...

  4. PYTHON批量挖掘百度下拉框关键词–转{张亚楠}

    百度下拉框的关键词,一直是SEO关键词拓展的利器,只要在搜索框中输入一个关键词,就可以得到一批相关词.我有个小技巧,可瞬间提升上百倍的挖掘效率.并且通过Python实现后,完全可用于大规模关键词的批量 ...

  5. 长尾关键词挖掘拓词软件-【批量挖掘百度大家还在搜和相关搜索长尾词】

    1.这款批量获取百度大家还在搜和相关搜索的长尾关键词拓词软件是一款强大的相关长尾关键词挖掘工具. 2.通过百度搜索,它可以快速而准确地批量获取百度大家还在搜和相关搜索的长尾关键词,帮助用户找到更多相关 ...

  6. 海绵宝宝python代码_Python那些事——python还能这么玩?帅呆了

    当我们还是孩子的时候,总是迷恋漫画书,当翻到我们的英雄们开始行动时会激动不已. 大家总是争论谁是最厉害的超级英雄,认真地讨论他们的家族历史,或者梦想自己拯救高谭市.我们很多人用自己的童年创造了这样的难 ...

  7. python注释_Python头条:python基础知识了解___注释、变量、Debug

    注释 作用 通过用自己熟悉的语言,在程序中对某些代码进行标注说明,这就是注释的作用,能够大大增强程序的可读性. 分类与语法 单行注释 只注释一行内容,语法如下: # 注释内容 多行注释 可以注释多行内 ...

  8. 怎么用python画心_python怎么画心Python的类实例属性访问规则

    一般来说,在Python中,类实例属性的访问规则算是比较直观的. 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此. 在这里,我们需要明白以下几个地方: 1.Pytho ...

  9. python @符号_Python金三角!python初学者很难绕过的坑,附教程资料

    Python大家对于这门语言的理解大多是说Python是最简单的编程语言,但是这几个深坑肯定是十个人无一未踩过的!特意总结了一下这些坑,看看你踩过没? 缩进 Python是强制缩进的语言,很多朋友第一 ...

最新文章

  1. python怎么继承_Python: 如何继承str/string?
  2. 【前端】JSON.stringfy 和 JSON.parse(待续)
  3. RAC安装时需要执行4个脚本及意义
  4. grub中mbr的程序
  5. 算法练习day10——190328(根据指定值划分单链表、复制含有rand指针节点的链表、两个单链表相交)
  6. 计算机科学 理学,077500计算机科学与技术(理学).doc
  7. Java——集合(输入一串字符串,统计字符串中每个字符出现的次数)
  8. 可以自动撑起的html样式,好好玩:CSS3抖动样式CSS Shake让你的网页酷炫起来
  9. 使用ZooKeeper编程 - 一个基本教程
  10. 14-win10下ElasticSearch.6.1.0与head、Kibana、X-Pack、SQL、IK、PINYIN插件的配置安装
  11. 管理动物园动物c++_中国动物园行业供需预测及投资潜力分析
  12. elm的 java包_README.md
  13. Java 11 升级:“债务”“危机”
  14. 光缆成端接头的含义是指
  15. android 封装回调,OkHttp 优雅封装 OkHttps 之 回调线程魔变
  16. php算法调度先来先服务器,高响应比优先调度算法
  17. Fedora14硬盘安装
  18. 公积金约定提取周期如何更改(不跑线下实体店,可以直接在个人公积金网站自助办理)
  19. 3纠结的刺:当专家还是管理者
  20. 旧电脑又卡有慢,一招设置电脑最佳性能

热门文章

  1. 未将对象引用设置到对象的实例异常的原因
  2. jq获取多个相同name名的input框的value值
  3. 360文件恢复找不到手机盘符怎么办?
  4. 读取jar中MF文件以及pom.xml中的版本号
  5. unigui美化界面源码框架
  6. Netty框架之编解码机制一(ByteBuf以及Tcp粘包拆包)
  7. CSS: :last-child 与 :first-child的坑
  8. 双非硕士的辛酸求职回忆录:第 1 篇 一份让面试官满意的简历究竟要做到什么
  9. 树莓派与电脑之间的串口通信编程
  10. 计算机分析建筑风,武汉城住宅小区风环境计算机模拟分析-图学学报.PDF