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

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

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

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

pic_001.png

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

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

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

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

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

运行效果

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


获取ua数据包 

关注本渣渣微信公众号 

pic_006.jpg

回复 mua


附参考源码

#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()


下一篇: 没有了