您现在的位置是:首页 > 站长新闻站长新闻

「SEO工具」python百度下拉框关键词采集及源码解读

2021-06-12【站长新闻】人已围观

简介对于词的研究,想必每个seoer都知道,而除了比较热门的百度相关搜索词之外,百度下拉框关键词应该也是不少人研究的范围,不过大部分人都是针对下拉框词的刷量,毕竟百度下拉框关键词采集已经泛滥成灾了。百度下拉的官方正式叫法是百度推荐词(Baidu

对于词的研究,想必每个seoer都知道,而除了比较热门的百度相关搜索词之外,百度下拉框关键词应该也是不少人研究的范围,不过大部分人都是针对下拉框词的刷量,毕竟百度下拉框关键词采集已经泛滥成灾了。
百度下拉的官方正式叫法是百度推荐词(Baidu Suggest Word),民间又称之为百度联想词或百度下拉菜单。它是百度为了方便广大网民搜索,提高输入效率而推出的一项服务。
举例,当我们在百度输入“营销”这两个字的时候,百度就从推荐词条库中检索出以“营销”这两个字打头的词条,并根据搜索量从大到小排序,组建成下拉菜单。百度下拉菜单的最大数量为10条。
百度下拉框关键词的意义:可以作为长尾词使用,作为标题使用,毕竟是用户搜索时候可以触发关键词搜索选择。不少人将下拉词直接进行引流,比如曝光品牌,引导到指定的页面,你可以进行搜集分析竞争对手的相关操作,或者自己去曝光自己的品牌,见仁见智吧!
网络上留存有不少下拉词的采集工具和源码,这里再次分享一下吧!
版本一:直接网页抓包实现下拉词的采集
  1. <font face="微软雅黑" size="3">def get_keywords(word):
  2. url=f"百度网址/sugrec?pre=1&ie=utf-8&json=1&prod=pc&wd={word}"
  3. html=requests.get(url)
  4. html=html.json()
  5. #print(html)
  6. #print(html['g'])
  7. key_words=[]
  8. for key_word in html['g']:
  9. print(key_word['q'])
  10. key_words.append(key_word['q'])
  11. #print(key_words)
  12. return key_words</font>
复制代码
版本二:使用官方接口比如:
  1. <font face="微软雅黑" size="3">def get_sug(word):
  2. url = '百度官方接口/su?wd=%s&sugmode=2&json=1&p=3&sid=1427_21091_21673_22581&req=2&pbs=%%E5%%BF%%AB%%E6%%89%%8B&csor=2&pwd=%%E5%%BF%%AB%%E6%%89%%8B&cb=jQuery11020924966752020363_1498055470768&_=1498055470781' % word
  3. r = requests.get(url, verify=False)# 请求API接口,取消了HTTPS验证
  4. cont = r.content# 获取返回的内容
  5. res = cont[41: -2].decode('gbk')# 只取返回结果中json格式一段,并且解码为unicode
  6. res_json = json.loads(res)# json格式转换
  7. return res_json['s']# 返回关键词列表</font>
复制代码
版本三:另一个接口地址
  1. <font face="微软雅黑" size="3">def get_word(word):
  2. url=f'百度另一个接口地址/su?wd={word}&sugmode=3&json=1'
  3. html=requests.get(url).text
  4. html=html.replace("window.baidu.sug(",'')
  5. html = html.replace(")", '')
  6. html = html.replace(";", '')
  7. #print(html)
  8. html = json.loads(html)
  9. key_words=html['s']
  10. #print(key_words)
  11. return key_words</font>
复制代码

本质上二和三都是同一个性质,大家参照着看和用吧!
扩展版本:这里有个小技巧,就是在关键词后面输入w,会出现跟拼音以w开头的一系列关键词,比如“黄山w”,会出现“黄山温泉”,”黄山玩几天“,“黄山五绝”等关键词(见上截图)。因此,当我们把a~z遍历一遍,会出现更多关键词。
  1. <font face="微软雅黑" size="3">def get_more_word(word):
  2. more_word=[]
  3. for i in 'abcdefghijklmnopqrstuvwxyz':
  4. more_word.extend(get_keywords('%s%s'%(word,i)))
  5. print(more_word)
  6. print(len(more_word))
  7. print(len(list(set(more_word))))
  8. return list(set(more_word))#去重操作




  9. def get_more_sug(word):
  10. all_words = []
  11. for i in 'abcdefghijklmnopqrstuvwxyz':
  12. all_words += get_sug(word+i)# 遍历字母表 | 利用了上一个函数
  13. print(len(list(set(all_words))))
  14. return list(set(all_words))# 去重</font>
复制代码
这里选用版本二的接口形式,避免被和谐但是使用requests模块请求一个证书无效的网站的话会直接报错可以设置verify参数为False解决这个问题r = requests.get(url, verify=False) 但是设置verify=False会抛出一个InsecureRequestWarning的警告这样看起来很不好解决方法:
  1. <font face="微软雅黑" size="3">from requests.packages.urllib3.exceptions import InsecureRequestWarning


  2. # 禁用安全请求警告
  3. requests.packages.urllib3.disable_warnings(InsecureRequestWarning)</font>
复制代码
运行效果



为了方便各位老哥使用和玩耍,本渣渣特意给各位老哥打包了一下low版exe工具,以便各位大佬哥使用! exe工具获取百度网盘
以下为exe下载信息,回复可获取!
游客,如果您要查看本帖隐藏内容请回复
以上代码仅供参考学习!如果有用,麻烦给个好评,谢谢!!

好评,谢谢!!

66666,值得学习

66666,值得学习

金币+1 贡献+5

Tags:采集   源码   解读   关键词   下拉框

很赞哦! ()

随机图文

文章评论

站点信息

  • 建站时间:2020-2-22
  • 网站程序:帝国CMS7.5
  • 文章统计9933篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信号:扫描二维码,联系我