您的位置 首页 > SEO教程

如理利用python技术挖掘百度营销词?

   使用Python批量采集关键词相关搜索,可以大大的提升我们的工作效率,也是一个提高效率的利器。利用python来完成关键词挖掘,获取关键词数据是seo中比较基础的部分,渠道很多,那如理利用python技术挖掘百度营销词?
  python技术挖掘百度营销词简单的操作方法,利用cookies来完成登录,这样只要在自己的浏览器登录账户,抓一下cookies就可以完成登录了。通过抓包发现凤巢的关键词规划师返回的是json数据,使用json模块把返回的json数据可识别,直接['word']提取我们数据就可以了。具体代码如下:
  # -*- coding: utf-8 -*-
  """
python seo优化工具
  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
  代码中co
  注意:代码中config和cookies的内容需要抓包获取对应数据填写即可。python完成关键词导出思路:
  1、每次使用脚本需抓包获取cookies数据登陆百度凤巢后台;
  2、找到返回json关键词数据的链接作为请求对象;
  3、构造header信息;
  4、构造data信息,用作post;
  5、使用pycurl模块请求,使用json模块把返回的json数据可识别,这边直接用正则提取;
  6、写入到csv文件当中。
 

关于作者: admin

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: