易搜资源网

Python与SEO,python采集百度移动端搜索相关关键词源码

做流量到底是词重要,还是内容重要?本渣渣窃以为,应该是词重要,尤其是那些竞争度小的,长尾流量词,有了词库,你才有了内容的方向,才有了后续一系列的操作和计划,同时才有了流量预估和报告。

整体大盘来看,移动端的流量和搜索人数应该是大于PC端的数据,从百度相关搜索词就能够看出,百度移动端搜索的相关搜索词有两块位置,你是否发现,这个操作应该是方便用户点击,拉到中间或者拉到最后,都很方便用户点击,不会流失用户。

SORRY,图贴错了,这个词是百度屏蔽词,违禁词,没有搜索数据的!


相关关键词源码

LSP,本渣渣劝你保重身体!!

下面的才是本渣渣要贴的图!

相关关键词源码

python采集百度移动端搜索相关关键词,这里本渣渣简单的使用的正则re获取,仅供参考!

需要注意的某些违禁词是没有相关搜索数据的,需要做处理,这里就等着你处理了!!

使用需要准备一个关键词txt文档,keyss.txt,关键词一行一个!

运行效果

Python与SEO

Python与SEO

注意:移动端搜索采集,你需要更换移动端的ua协议头,这里本渣渣从网上获取了4800多条移动ua,仅供参考使用!

参考源码

#20210326 移动端相关关键词搜索采集

#微信:huguo00289

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

import requests,random,re,time


class Mbs():

    def __init__(self):

        self.ua=''

        self.ua_list=[]

        self.load_keywords=[]

        self.keyword_lists=[]

        self.m_search="https://m.baidu.com/s?word="


    #获取协议头列表

    def get_uas(self):

        path = r"uadata.txt"

        with open(path, 'r') as f:

            datas = f.readlines()

            for data in datas:

                data = data.replace('\n', '')

                self.ua_list.append(data)


        print(f'>>已获取 {len(self.ua_list)} 条user-agent数据!')


    # 导入关键词

    def lead_keywords(self):

        print('>> 正在导入关键词列表..')

        try:

            with open('keyss.txt', 'r', encoding='gbk') as f:

                self.load_keywords = f.readlines()

        except:

            with open('keyss.txt', 'r', encoding='utf-8') as f:

                self.load_keywords = f.readlines()


        print('>> 正在导入关键词列表成功!')

        print(f'共导入 {len(self.load_keywords)} 个关键词!')


    #获取百度移动搜索相关关键词

    def get_keywords(self,keyword):

        print(f'>> 正在爬取采集关键词 {keyword} 相关关键词数据..')

        keyword_list = []

        headers = {'user-agent': self.ua}

        url = f"{self.m_search}{keyword}"

        response = requests.get(url=url, headers=headers,timeout=6)

        print(response.status_code)

        html = response.content.decode('utf-8')

        # 获取中部词

        mid_div_data = re.findall(r'大家还在搜</div>(.+?)<div  class="c-result result"', html, re.S)[0]

        mid_a_data = re.findall(r'<a href=".+?" target=".+?" .+?><span .+?>(.+?)</span></a>',mid_div_data, re.S)

        print(mid_a_data)

        # 获取底部词

        bot_div_data =re.findall(r'<div class=".+?">大家还在搜</div>(.+?)<div id="page-controller', html, re.S)[0]

        bot_a_data = re.findall(r'<a target=".+?" class=".+?" href=".+?"><span>(.+?)</span></a>', bot_div_data, re.S)

        print(bot_a_data)

        keyword_list.extend(mid_a_data)

        keyword_list.extend(bot_a_data)

        self.save(keyword_list)

        self.keyword_lists.extend(keyword_list)


    #保存关键词

    def save(self,data):

        data=set(data)  #去重

        print('>> 正在保存相关关键词列表..')

        with open('keywords.txt', 'a+', encoding='utf-8') as f:

            f.write('\n'.join(data))


        print('>> 正在保存相关关键词列表成功!')


    def main(self):

        self.lead_keywords()

        self.get_uas()

        self.ua = random.choice(self.ua_list)

        i=1

        for keyword in self.load_keywords:

            print(f'>>正在爬取采集第 {i} 个关键词..')

            self.get_keywords(keyword)

            time.sleep(2)

            i=i+1


if __name__=='__main__':

    spider=Mbs()

    spider.main()

本文链接:https://www.yisozy.com/29.html

版权声明:

本站所刊载内容均为网络上收集整理,包括但不限于代码、应用程序、影音资源、电子书籍资料等,并且以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途。

若您使用开源的软件代码,请遵守相应的开源许可规范和精神, 若您需要使用非免费的软件或服务,您应当购买正版授权并合法使用。如果你下载此文件,表示您同意只将此文件用于参考、学习使用而非任何其他用途。

发表评论

还没有评论,快来说点什么吧~

联系客服
返回顶部