最新公告
  • 欢迎您光临源码窝,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 正文概述
  • 评价建议
  • 【关键词采集工具】seo必备工具,python采集关键词挖掘数据
    【关键词采集工具】seo必备工具,python采集关键词挖掘数据采集数据来源于站长之家!需要输入关键词!引用的库

    import requests
    from lxml import etree
    import re
    import xlwt
    import time

    例子:
    1.etree采集列表
    2.切片操作
    3.保存excel格式

    #站长工具关键词挖掘
    # -*- coding=utf-8 -*-
     
    import requests
    from lxml import etree
    import re
    import xlwt
    import time
     
     
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10'
    }
     
     
    #查询关键词是否能找到相关的关键字
    def search_keyword(keyword):
        data={
            'kw': keyword,
            'page': '1',
            'by': '0',
        }
        url="http://stool.chinaz.com/baidu/words.aspx"
        html=requests.post(url,data=data,headers=headers).text
        time.sleep(3)
        #print(html)
        con=etree.HTML(html)
        key_result=con.xpath('//div[@class="col-red lh30 fz14 tc"]/text()')
        try:
            key_result=key_result[0] #没有找到相关的关键字
        except:
            key_result=[]
        #print(key_result)
        return key_result
     
     
     
    #获取关键词页码数和记录条数
    def get_page_number(keyword):
        data = {
            'kw': keyword,
            'page': '1',
            'by': '0',
        }
        url = "http://stool.chinaz.com/baidu/words.aspx"
        html = requests.post(url, data=data, headers=headers).text
        time.sleep(3)
        # print(html)
        con = etree.HTML(html)
        page_num = con.xpath('//span[@class="col-gray02"]/text()')
        page_numberze = r'共(.+?)页'
        page_number = re.findall(page_numberze, page_num[0], re.S)
        page_number = page_number[0]
        #print(page_number)
        total_data = con.xpath('//p[@class="col-gray lh24 fr pr5"]')  # 数据记录
        total_datas = total_data[0].xpath('string(.)')  # 获取节点所有文本
        #print(total_datas)
        print(f'挖掘关键词:{keyword}-{total_datas}')
        return page_number
     
     
    #获取关键词数据
    def get_keyword_datas(keyword,page_number):
        datas_list = []
        for i in range(1,page_number+1):
            print(f'正在采集第{i}页关键词挖掘数据...')
            data = {
                'kw': keyword,
                'page': i,
                'by': '0',
            }
            #print(data)
            url = "http://stool.chinaz.com/baidu/words.aspx"
            html = requests.post(url, data=data, headers=headers).text
            time.sleep(3)
            #print(html)
            con = etree.HTML(html)
            key_words = con.xpath('//p[@class="midImg"]/a/span/text()')  # 关键词
            #print(key_words)
            keyword_all_datas = []
            keyword_datas = con.xpath('//ul[@class="ResultListWrap "]/li/div[@class="w8-0"]/a')
            for keyword_data in keyword_datas:
                keyword_data = keyword_data.text
                if keyword_data != None:
                    keyword_all_datas.append(keyword_data)
            #print(keyword_all_datas)
            overall_indexs = keyword_all_datas[0::5]  # 整体指数
            #print(overall_indexs )
            pc_indexs = keyword_all_datas[1::5]  # pc指数
            #print(pc_indexs)
            mobile_indexs = keyword_all_datas[2::5]  # 移动指数
            #print(mobile_indexs)
            s360_indexs = keyword_all_datas[3::5]  # 360指数
            #print(s360_indexs)
            collections = keyword_all_datas[4::5]  # 收录量
            #print(collections)
            ips = con.xpath('//ul[@class="ResultListWrap "]/li/div[@class="w15-0 kwtop"]/text()') # 预估流量
            if ips==[]:
                ips =['--']
            #print(ips)
            first_place_hrefs = con.xpath(
                '//ul[@class="ResultListWrap "]/li/div[@class="w18-0 lh24 tl"]/a/text()')  # 首页位置链接
            if first_place_hrefs==[]:
                first_place_hrefs=con.xpath('//ul[@class="ResultListWrap "]/li/div[@class="w18-0 lh24 tl"]/text()')
            #print(first_place_hrefs)
            first_place_titles = con.xpath(
                '//ul[@class="ResultListWrap "]/li/div[@class="w18-0 lh24 tl"]/p[@class="lh17 pb5"]/text()')  # 首页位置标题
            if first_place_titles == []:
                first_place_titles=['--']
            #print(first_place_titles)
            data_list = []
            for key_word, overall_index, pc_index, mobile_index, s360_index, collection, ip, first_place_href, first_place_title in zip(
                    key_words, overall_indexs, pc_indexs, mobile_indexs, s360_indexs, collections, ips, first_place_hrefs,
                    first_place_titles
            ):
                data = [
                    key_word,
                    overall_index,
                    pc_index,
                    mobile_index,
                    s360_index,
                    collection,
                    ip,
                    first_place_href,
                    first_place_title,
                ]
                print(data)
                print('\n')
                data_list.append(data)
                time.sleep(3)
            datas_list.extend(data_list) #合并关键词数据
        return datas_list
     
     
    #保存关键词数据为excel格式
    def bcsj(keyword,data):
        workbook = xlwt.Workbook(encoding='utf-8')
        booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)
        title = [['关键词', '整体指数', 'PC指数', '移动指数', '360指数', '预估流量(ip)', '收录量', '网站首位链接', '网站首位标题']]
        title.extend(data)
        #print(title)
        for i, row in enumerate(title):
            for j, col in enumerate(row):
                booksheet.write(i, j, col)
        workbook.save(f'{keyword}.xls')
        print(f"保存关键词数据为 {keyword}.xls 成功!")
     
     
    if __name__ == '__main__':
        keyword = input('请输入关键词>>')
        print('正在查询,请稍后...')
        result=search_keyword(keyword)
        if result=="没有找到相关的关键字":
            print('\n')
            print (result)
            print("该关键词没有挖掘到关键词数据")
        else:
            print('\n')
            page_number=get_page_number(keyword)
            print('\n')
            print('正在采集关键词挖掘数据,请稍后...')
            print('\n')
            page_number=int(page_number)
            datas_list=get_keyword_datas(keyword,page_number)
            print('\n')
            print('关键词挖掘数据采集结果:')
            print('========================采集结果========================\n\n')
            for datas in datas_list:
                print(datas)
            print('\n\n========================采集结束========================\n')
            bcsj(keyword, datas_list)

    【已更新关键词挖掘采集工具】seo必备工具,python采集关键词挖掘数据插图【已更新关键词挖掘采集工具】seo必备工具,python采集关键词挖掘数据插图(1)【已更新关键词挖掘采集工具】seo必备工具,python采集关键词挖掘数据插图(2)

    2019.7.5 更新exe!
    exe运行环境  win7 64位系统

    有部分无指数的数据丢失,会少一点数据,还是与取值有关,将就着用吧!
    本渣渣只会简单打包,暂时不会pyqt!!

     

    RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
    源码窝 » 【已更新关键词挖掘采集工具】seo必备工具,python采集关键词挖掘数据

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    源码窝
    提供全网最新资源,如有侵权联系删除

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者
    • 28会员总数(位)
    • 593资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 208稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情