百度推广,也就是百度凤巢,相信从业人员应该是相当熟悉,里面有不少好用的工具,而关键词规划师可谓是必用工具之一,不管是你是seo还是sem,它都能够用上!
2009年4月20日,全球最大的中文搜索引擎百度正式推出搜索推广专业版,即此前受到业界广泛关注的“凤巢”推广系统。2009年12月1日,百度按照原定计划全面启用搜索营销专业版(即凤巢系统),凤巢将全面接管百度所有的推广位置,而原有的搜索营销经典版(即竞价排名)将从此告别历史舞台。
新版
老版
犯了一个傻蛋问题:
data_lists=data_lists.extend(data_list)
data_lists一直返回 None!
append()跟extend() 没有返回值
调试了许久!!!
对Python的List进行更新主要用到两个方法:append()跟extend()
append()是在List最后进行插入
extend()更像是拼接,可以拼接另一个列表
需要注意的是这两个方法都没有返回值,只是在原列表上进行修改,不会返回一个新的修改后的列表
如下代码:print()输出的都是None,因为append没有返回值,所以new_menulist的值为None
session = DBSession() DB = session.query(sys_role).filter(sys_role.dele != 2).all() new_menu = {"menuid": menuid, "insert": 0, "delete": 0, "edit": 0, "select": 0} for item in DB: old_menulist = json.loads(item.menulist) new_menulist = old_menulist.append(new_menu) print(new_menulist)
稍微修改一下就可以正确输出:
session = DBSession() DB = session.query(sys_role).filter(sys_role.dele != 2).all() new_menu = {"menuid": menuid, "insert": 0, "delete": 0, "edit": 0, "select": 0} for item in DB: old_menulist = json.loads(item.menulist) old_menulist.append(new_menu) item.menulist = json.dumps(old_menulist)
这些都是Python的基础,写多了就好了
来源:CSDN博主「Fortuna_」
运行效果:
采集效果:
注意协议头及post data数据需要获取正确,这里我把自己的省略了,可自行添加!
附上源码:
#百度凤巢关键词获取 #20200116 by 微信:huguo00289 # -*- coding: UTF-8 -*- #老地址:http://fengchao.baidu.com/nirvana/main.html?userid=userid#/app/index import requests import json import time import xlsxwriter headers={ } #采集关键词数据 def get_keywords(key,page): sem_datas=[] url="http://fengchao.baidu.com/nirvana/request.ajax?path=jupiter/GET/kr/word&reqid=4b534c46-4342-49f9-eba6-157924910171" data = { } response=requests.post(url,data=data,headers=headers,timeout=10) time.sleep(2) print(response.status_code) req=response.content.decode('utf-8') reqs=json.loads(req) datas=reqs['data']['group'][0]['resultitem'] datas_num=len(datas) print(datas_num) if datas_num>0: for data in datas: word=data['word'] #关键词 pv = data['pv'] #整体日均搜索量 pvPc = data['pvPc'] #PC端日均搜索量 pvWise = data['pvWise'] #移动日均搜索量 kwc = data['kwc'] #竞争激烈程度 recBid=data['recBid'] #预估价格 recBidPc = data['recBidPc'] # PC端预估价格 recBidWise = data['recBidWise'] #移动端预估价格 sem_data=[word,pv,pvPc,pvWise,kwc,recBid,recBidPc,recBidWise] print(sem_data) sem_datas.append(sem_data) return sem_datas,datas_num #数据写入excle表格 def write_to_xlsx(key,data_lists): print("关键词数据正在写入excel...") workbook = xlsxwriter.Workbook('{}_search_results.xlsx'.format(key)) # 创建一个Excel文件 worksheet = workbook.add_worksheet(key) title = ['关键词', '整体日均搜索量', 'PC端日均搜索量', '移动日均搜索量', '竞争激烈程度', '预估价格',"PC端预估价格","移动端预估价格"] # 表格title worksheet.write_row('A1', title) for index, data in enumerate(data_lists): num0 = str(index + 2) row = 'A' + num0 worksheet.write_row(row, data) workbook.close() print("关键词数据写入excel成功!") #运行函数 def main(key,num): data_lists=[] num=int(num) for i in range(1,num+1): print(f"正在采集第 {i} 页关键词数据信息") serach=get_keywords(key, i) data_list=serach[0] if serach[1]==0: print(f"关键词{key}没有第{i}页数据,停止采集!") break data_lists.extend(data_list) print(data_lists) time.sleep(3) datas_num=len(data_lists) print(f'共采集到 {datas_num} 条数据!') write_to_xlsx(key, data_lists) if __name__=="__main__": key="seo" page=2 main(key,page)