SEO从业者很好的关键词来源是什么?(一)

优采云 发布时间: 2021-05-30 18:15

  SEO从业者很好的关键词来源是什么?(一)

  本文文章建议在PC端查看。整篇文章的阅读时间看个人理解。 config和cookie需要抓包并填写userid、token、eventId、reqid这四个值的来源,即抓包“关键词planner”,userid为整数类型,token,eventId , 和 reqid 是字符串类型。

  百度竞价中的关键词规划师是SEO从业者的关键词很好的来源。

  这里如何获取关键词的内容?

  此代码基于网络上2. 7的版本,如果将其修改为3. *,也可以使用。

  (其实就是改了打印,23333)

  同样,这段代码也没有一步步教你如何解决登录和获取cookie的问题。直接使用登录后的cookie和登录后的from_data数据,注意下面代码最上面的注释,不然不行别怪我。

  

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

#本代码改编自网络上Python2.7版本代码。

#Python版本:3.*,需要安装requests,JSON库不知道要不要重新安装

#使用本代码,首先将代码保存为.py文件,并且在相同目录中新建名字为cigeng的txt文件

#在cigeng.txt文件中输入要采集的关键词,一行一个。保存。

#成功采集后的数据,保存在相同目录中resultkeys.txt文件中。

#如果只要关键词,不要其他黑马等数据,那么就修改key_data函数下else中的数据。

import requests

import json

import time

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,

#在下面config这个变量值下面的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={

#这部分数据和下面的cookie,直接开浏览器抓包就能看到相应数据。复制黏贴到相应位置

'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就可以。

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)

## kws.append(str(word))

## print (word)

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

  以下代码是浏览器(360极速浏览器)抓取的,#(需要挂梯子)网站格式化数据,没有任何改动。方便新人理解。需要导入JSON,使用JSON解析代码,但要注意JSON内容过多,小心IDLE卡住。

  import requests

cookies = {'这部分有数据的,我删了,自己抓包后就知道'

}

headers = {

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

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

'Accept-Language': 'zh-CN,zh;q=0.9',

'User-Agent': 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',

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

'Accept': '*/*',

'Referer': 'http://fengchao.baidu.com/nirvana/main.html?userid=6941153',

'Connection': 'keep-alive',

}

params = (

('path', 'jupiter/GET/kr/word'),

('reqid', '4b534c46-1ea0-4eca-b581-154181423578'),

)

data = {

'userid': '',

'token': '',

'reqid': '',

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

'eventId': '',

'params': '{"logid":,"entry":"kr_station","attrWordContainTag":[],"needAutounit":false,"querytype":1,"query":"\u622A\u6B62\u9600","querySessions":["\u622A\u6B62\u9600"],"forceReload":true,"regions":"","device":0,"showWordContain":"","showWordNotContain":"","attrShowReasonTag":[],"attrBusinessPointTag":[],"filterAccountWord":true,"rgfilter":1,"planid":0,"unitid":0,"pageNo":1,"pageSize":300,"order":"","orderBy":""}'

}

response = requests.post('http://fengchao.baidu.com/nirvana/request.ajax', headers=headers, params=params, cookies=cookies, data=data)

  2018-11-13,有人说,既然可以去百度,为什么还要登录自己的账号,抓包,复制数据到python脚本中。

  ......emmmmm 这是因为我不知道 cookie、userid、token 和 reqid 的来源。

  所以我现在使用这种傻瓜式方法。但至少比手动好很多。

  另外提供几个小思路:主要关键词-比如python,放到百度搜索,底部的相关搜索也是关键词的好源码,可以考虑百度竞价采集再次关键词之后,再写一个代码,采集这些关键词相关搜索关键词。

  此外,百度百科右侧的条目标题也与当前搜索关键词有关。也可以过来标题采集的这部分做个专题。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线