精华内容
下载资源
问答
  • 用django写的小红书数据采集系统,内涵小红书数据采集爬虫和对应数据库写入写出功能,应该爬虫规则已经发生变更了,代码可以用来学习数据采集和存储以及查询提取作用
  • 小红书数据采集接口

    千次阅读 2020-06-12 11:57:13
    提供封装好的小红书数据采集接口,通过手机自动化实时采集,接口稳定。 接口使用详情请参考接口文档。 已支持接口列表如下: 小红书关键字搜索 小红书用户信息详情 小红书用户笔记列表 小红书单个笔记详细数据...

    提供封装好的小红书数据采集接口,通过手机自动化实时采集,接口稳定。

    接口使用详情请参考接口文档

    已支持接口列表如下:

    • 小红书关键字搜索
    • 小红书用户信息详情
    • 小红书用户笔记列表
    • 小红书单个笔记详细数据
    • 小红书用户关注列表
    • 小红书用户粉丝列表
    • 小红书用户点赞的笔记列表
    • 小红书用户收藏的笔记列表
    • 小红书笔记的评论列表
    • 小红书单条评论下的回复列表
    • 小红书单个笔记关联的商品列表
    • 小红书商城店铺下的商品列表
    • 小红书话题页/poi页相关接口

    接口持续更新维护~

    展开全文
  • 小红书数据采集教程,使用协程方式爬取小红书 热门页 下的数据 from gevent import monkey # 猴子补丁 monkey.patch_all() from gevent.pool import Pool from queue import Queue import requests import json from...

    小红书数据采集教程,使用协程方式爬取小红书 热门页 下的数据

    短视频、直播数据服务,请查看文档: TitoData
    免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负。
    文章来源于互联网,非原创,若侵权,请私信联系我们处理。

    from gevent import monkey
    # 猴子补丁
    monkey.patch_all()
    from gevent.pool import Pool
    from queue import Queue
    import requests
    import json
    from lxml import etree
    
    
    class RedBookSpider():
        """小红书爬虫"""
    
        def __init__(self, pages):
            """初始化"""
            self.url = 'https://www.xiaohongshu.com/web_api/sns/v2/trending/page/brand?page={}&page_size=20'
            self.headers = {
                "User-Agent": "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Mobile Safari/537.36"
            }
            self.url_queue = Queue()
            self.pool = Pool(5)
            self.pages = pages
            pass
    
        def get_url(self):
            """获取url"""
            for page in range(1, self.pages):
                url = self.url.format(page)
                self.url_queue.put(url)
    
        def save_data(self, items):
            """数据保存"""
            with open('./redbook.txt', 'a', encoding='utf-8') as f:
                f.write(str(items) + '\n')
    
        def deal_detail(self, detail_url, items, data):
            """详情页内容提取"""
    
            resp = requests.get(url=detail_url, headers=self.headers)
            eroot = etree.HTML(resp.text)
            items['fans'] = eroot.xpath('//div[@data-v-64bff0ce]/div[@class="extra"]/text()')
            items['articles'] = eroot.xpath('//div/span[@class="stats"]/text()')
            items['introduce'] = eroot.xpath('//div[@class="desc"]/div[@class="content"]/text()')
            items['detail_url'] = detail_url
            items['image'] = data['page_info']['banner']
            print(items)
            self.save_data(items)
    
        def deal_response(self, resp):
            """数据提取"""
            dict_data = json.loads(resp.text)
            dict_data = dict_data['data']
            for data in dict_data:
                items = {}
                items['name'] = data['page_info']['name']
                detail_url = 'https://www.xiaohongshu.com/page/brands/' + data['page_id']
                self.deal_detail(detail_url, items, data)
    
        def execute_task(self):
            """处理响应"""
    
            url = self.url_queue.get()
            resp = requests.get(url=url, headers=self.headers)
            # print(resp.text)
            self.deal_response(resp)
            self.url_queue.task_done()
    
        def execute_task_finished(self, result):
            """任务回调"""
    
            self.pool.apply_async(self.execute_task, callback=self.execute_task_finished)
    
        def run(self):
            """启动程序"""
    
            self.get_url()
            for i in range(3):
                self.pool.apply_async(self.execute_task, callback=self.execute_task_finished)
            self.url_queue.join()
    
            pass
    
    
    if __name__ == '__main__':
        user = RedBookSpider(4)
        # 需要爬取几页数据  就改为多少
        user.run()
    
    
    展开全文
  • 【最新2020.3】小红书数据采集 APP 爬虫 入门

    万次阅读 热门讨论 2020-03-25 18:30:19
    这里写自定义目录标题【最新2020.3】小红书数据采集 APP 爬虫 入门 (1)关于抓包工具Xposted框架+Justtrustme愉快抓包 【最新2020.3】小红书数据采集 APP 爬虫 入门 (1) 百度直接搜小红书爬虫,出来的文章都是一两年...

    【最新2020.3】小红书数据采集 APP 爬虫 入门 (1)

    百度直接搜小红书爬虫,出来的文章都是一两年前的了,甚至还有web版本的(小红书web只能显示20条)。花了5天时间研究app爬虫内容,整合到此,以小红书为案例与大家分享中间经过的坑。【最新可操作方式】

    关于抓包工具

    常用的抓包工具有好多种,可百度搜索抓包工具自行挑选:
    主要介绍Flidder,适用安卓和Web抓包。怎么下载和前期调试请参考:
    fiddler下载及配参
    注意:按步骤一步一步走哈。配置好后fiddler最好重启一次
    坑1:选择Decrypt HTPS traffic后,电脑有可能无法连接网络。取消这个勾就可以,手机抓包不影响,且抓包一定要开,否则HTTPS抓不到]选择Decrypt HTPS traffic后,电脑有可能无法连接网络。取消这个勾就可以,手机抓包不影响,且抓包一定要开,否则HTTPS抓不到
    坑2:手机证书无法下载
    手动下载手机证书

    Xposted框架+Justtrustme

    Fiddler安装好了以后,正常的手机网页和小型APP(活动行)是可以直接抓包的,但会有乱码或不完整。但是小红书,抖音,淘宝,微信这些是无法抓取的。原因是fiddler的证书是不受这些APP信任的。我们需要绕过这些ssl证书绑定。

    解决方案:Xposted框架+Justtrustme
    Xposted有多厉害自己可以百度查一下,基本上在安卓系统就是上帝纯在了。唯一一点不好就是需要手机root权限开放。
    给个建议:不是专业刷机的同学有三种解决方案,
    1、某宝服务专业root+Xp框架安装。半张毛爷爷就能解决(建议系统刷7.0以下)
    2、模拟器+Xposted框架
    3、virtualXpost+Xposted.apk
    我是哪一种,你猜一下。再次强调不是专业刷机!千万别自己来!里面坑太大。。。会砖的。

    Xposted框架成功后,点击直接下载Justtrustme
    安装JustTrustMe

    安装完成后打开模块选项(图片来源见水印~)
    记得重启
    坑1:道理上可以抓小红书了,但有可能出现下载完成后小红书无法连接网络的问题。前提是WIFI没问题
    解决方法:
    1.系统等级太高,删除框架后是否可以联网,不行就重刷系统(我的系统8.0躺坑)
    2.Xposted框架与系统不匹配,重刷Xposted框架
    3.莫名的原因。比如我小红书可以,抖音不行。自行解决吧

    愉快抓包

    走到这一步,收获第一阶段的胜利。打开Fiddler,如下图:
    小红书抓包
    request
    #接下来更新PYTHON爬取篇

    展开全文
  • django+requests写数据采集系统 目的:实现数据采集和系统化的操作 数据采集 django框架搭建系统 数据采集 获取数据 提取数据 遍历 #-*-coding:utf-8-*- import requests import re from lxml import etree...

    django+requests写数据采集系统

    目的:实现数据采集和系统化的操作
    资源地址

    1. 数据采集
    2. django框架搭建系统

    数据采集

    1. 获取数据
    2. 提取数据
    3. 遍历
     #-*-coding:utf-8-*-
    import requests
    import re
    from lxml import etree
    import datetime
    import requests
    import json
    
    # 1.写一个用于获取数据的小函数,如果确定网站的编码形式,就可以去掉其他的判断
    def geturl(dlip,URL):
        try:
            data = requests.get(URL,proxies=dlip).content.decode('utf-8','ignore')
            return data
        except:
            data = requests.get(URL,proxies=dlip).content.decode('gb2312','ignore')
            return data
        else:
            data = requests.get(URL,proxies=dlip).content.decode('gbk','ignore')
            return data
    
    # 2.这里面用到了代理IP,所以另外写一个小函数接入代理IP,如果不嫌麻烦,自己抓取代理IP搭建IP池也是可以的
    def dailiip(api="http://webapi.http.zhimacangku.com/getip?num=400&type=2&pro=&city=0&yys=0&port=1&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=1&regions="):
        data = requests.get(api).content.decode('utf-8')
        dailis = []
        for ip in json.loads(data)["data"]:
            dailis.append({'http':str(ip['ip'])+':'+str(ip['port'])})
        return dailis
    
    # 3.在请求到数据之后,接下来就是对关键数据进行提取,这里是某个网站的Xpath路径解析
    def getdata(data):
        B = etree.HTML(data)
        Data={}
        try:
            # Data["笔记名"]= B.xpath(r'//*[@id="app"]/div/div[2]/div[1]/div[2]/h1')[0].text
            # Data["笔记主昵称"]= B.xpath(r'//*[@id="app"]/div/div[2]/div[2]/div[1]/span/div[2]/h6/span')[0].text
            Data["笔记总量"]= B.xpath(r'//*[@id="app"]/div/div[2]/div[2]/div[1]/div/div[1]/span[2]')[0].text
            Data["粉丝量"] = B.xpath(r'//*[@id="app"]/div/div[2]/div[2]/div[1]/div/div[2]/span[2]')[0].text
            Data["获赞与收藏"]= B.xpath(r'//*[@id="app"]/div/div[2]/div[2]/div[1]/div/div[3]/span[2]')[0].text
            Data["该笔记点赞"] = B.xpath(r'//*[@id="app"]/div/div[2]/div[1]/div[5]/div[1]/span[1]/span')[0].text
            Data["该笔记评论"] = B.xpath(r'//*[@id="app"]/div/div[2]/div[1]/div[5]/div[1]/span[2]/span')[0].text
            Data["该笔记收藏"] = B.xpath(r'//*[@id="app"]/div/div[2]/div[1]/div[5]/div[1]/span[3]/span')[0].text
            # Data["抓取时间"] = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        except:
            Data={}
        return Data
    
    # 4.接下来遍历所有的待请求的URL即可,这个步骤我们放到系统操作里面去写具体逻辑
    

    获取Xpath路径:
    一般的网站,如果没有针对这个进行反采集的话,Xpath路径的获取是非常简单的

    首先:准备一个Chrome浏览器,或者自己试一下其他浏览器可不可以
    接着:打开目标网站的其中一个,按下键盘快捷键F12唤出开发者操作台
    然后:在操作台的左上角箭头点击下后再在网站页面的目标数据位置点击一下,就能跳转到对应位置
    最后:在操作台页源码的对应位置鼠标右键,点击复制Xpath
    在这里插入图片描述

    https://www.xiaohongshu.com/discovery/item/5f323e29000000000101c548?xhsshare=CopyLink&appuid=57f1fa595e87e77d484d521d&apptime=1597128255
    就能获取到对应的Xpath:
    //*[@id="app"]/div/div[2]/div[1]/div[4]/div[1]/span[1]/span
    

    django框架搭建系统

    再结合我之前的django学习笔记搭建即可
    在这里插入图片描述
    具体要啥维度的数据就自己写就行了,我这就简单展示了笔记数据和红人数据的一个外链关系

    这里特别展示一下数据的采集/导入/导出逻辑

    class InputsViewSet(ModelViewSet):
        """
        数据导入文件列表
        """
    
        serializer_class = InputsSerializer
        permission_classes = [permissions.IsAuthenticated]
        # 分页+统计
        pagination_class = CommonPagination
        def get_queryset(self, *args, **kwargs):
            return Inputs.objects.filter(deleted__exact='0')
    
        def destroy(self, request, *args, **kwargs):
            """
            销毁模型实例.
            """
            instance = self.get_object()
            # 永久删除
            # self.perform_destroy(instance)
            # 临时删除  假删除
            instance.deleted = 1
            instance.save()
            context = {
                'code': status.HTTP_204_NO_CONTENT,
                'msg': '删除成功!',
                'data': ''
            }
            # 如果反馈“HTTP_204_NO_CONTENT”,会导致context中内容没有返回给浏览器
            return Response(context, status=status.HTTP_200_OK)
        
        def create(self, request, *args, **kwargs):
            serializer = self.get_serializer(data=request.data)
            serializer.is_valid(raise_exception=True)
            self.perform_create(serializer)
            sheet = serializer.data['title']
            import re,os
            from urllib import parse
            from rednote.readexcel import excel2list
            path = parse.unquote(str(serializer.data['fileUrl']).replace('http://127.0.0.1:8000', os.path.dirname(__file__) + os.sep + '..' + os.sep ))
            up_s = excel2list(path,sheet)
            for up in up_s:
                upitems =  UpItems.objects.filter(deleted__exact='0',upname__exact = str(up[5])).first()
                if upitems == None:
                    upitems = UpItems()
                if str(up[4])=='超头部达人':
                    upitems.level = 'super'
                elif str(up[4])=='头部达人':
                    upitems.level = 'head'
                elif str(up[4])=='腰部达人':
                    upitems.level = 'waist'
                elif str(up[4])=='高质量KOL' or 'Kol' in str(up[4]) or 'KOL' in str(up[4]) or 'kol' in str(up[4]):
                    upitems.level = 'kol'
                elif str(up[4])=='初级达人':
                    upitems.level = 'primary'
                elif str(up[4])=='底部素人':
                    upitems.level = 'bottom'
                elif str(up[4])=='铺量素人':
                    upitems.level = 'exten'
                elif str(up[4])=='优质素人':
                    upitems.level = 'quality'
                else:
                    upitems.level = 'initial'
                upitems.upname = str(up[5])
                upitems.createdBy = '后台导入'
                upitems.save()
    
                notes = Notes.objects.filter(deleted__exact='0',notename__exact = str(up[13]),noteUrl__exact = str(up[14])).first()
                if notes == None:
                    notes = Notes()
                notes.notename = str(up[13])
                notes.noteUrl = str(up[14])
                notes.upname = upitems
                kpinum = str(re.split('.0',str(up[8]))[0])
                if kpinum.isdigit():
                    notes.kpi = kpinum
                else:
                    notes.kpi = 0
                notes.putDate = str(up[9])
                notes.noteType = str(up[0])
                notes.noteAngle = str(up[1])
                notes.spreadPlan = str(up[2])
                notes.spreadProduct = str(up[3])
                notes.brand = str(up[15])
                notes.createdBy = '后台导入'
                notes.save()
    
            headers = self.get_success_headers(serializer.data)
            return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
    
    
    class ReptilesViewSet(ModelViewSet):
        """
        爬虫执行开关
        """
        serializer_class = ReptilesSerializer
        permission_classes = [permissions.IsAuthenticated]
        # 分页+统计
        pagination_class = CommonPagination
        def get_queryset(self, *args, **kwargs):
            return Reptiles.objects.filter()   
        def create(self, request, *args, **kwargs):
            serializer = self.get_serializer(data=request.data)
            serializer.is_valid(raise_exception=True)
            self.perform_create(serializer)
            import re
            H_M = serializer.data['begin']
            H=int(re.split(':|:',str(H_M))[0])
            M=int(re.split(':|:',str(H_M))[1])
            import datetime
            import time
            #定时设置函数
            # def main(h=10, m=25):
                # '''h表示设定的小时,m为设定的分钟'''
            while True:
                # 判断是否达到设定时间,例如23:00
                while True:
                    now = datetime.datetime.now()
                    # 到达设定时间,结束内循环
                    if now.hour==H and now.minute==M :#and now.isoweekday() in [2,5,7]:
                        break
                    # 不到时间就等20秒之后再次检测
                    time.sleep(10)
                now = datetime.datetime.now()
                print('-----现在是:'+str(now.hour)+'点'+str(now.minute)+'分 ,开始爬取数据-----')
                note = Notes.objects.filter(deleted__exact='0')
                from rednote.geturl import dailiip,getred,geturl,getdata,changeW
                dailis = dailiip()
                i=0
                times = 0
                nowis = 0
                for n in note:
                    nowis = nowis + 1
                    # print(n.noteUrl)
                    dlip = dailis[int(i)]
                    get_url = geturl(dlip,n.noteUrl)
                    # time.sleep(1)
                    Data = getdata(get_url)
                    while Data == {} and times < 10:
                        i=i+1
                        times = times+1
                        print('查看是否需要滑块验证')
                        if i==len(dailis):
                            i=0
                            times = 0
                            dailis = dailiip()
                        dlip = dailis[int(i)]
                        get_url = geturl(dlip,n.noteUrl)
                        time.sleep(6)
                        Data = getdata(get_url)
                    if  Data != {}:
                        print(str(nowis)+'/'+str(len(note)),Data)
                        updatas = UpDatas.objects.filter(upname__exact=n.upname,createdDate__icontains=str(datetime.datetime.now().strftime('%Y-%m-%d'))).first()
                        if updatas == None:
                            updatas = UpDatas()
                        updatas.upname=n.upname
                        updatas.notenum = int(changeW(Data["笔记总量"]))
                        updatas.fansnum = int(changeW(Data["粉丝量"]))
                        updatas.allnum =int(changeW(Data["获赞与收藏"]))
                        updatas.save()  
                        notenum = Notenum.objects.filter(note__exact=n,createdDate__icontains=str(datetime.datetime.now().strftime('%Y-%m-%d'))).first()
                        if notenum ==None:
                            notenum = Notenum()
                        notenum.note=n
                        notenum.praisenum=int(changeW(Data["该笔记点赞"]))
                        notenum.talknum=int(changeW(Data["该笔记评论"]))
                        notenum.collectnum=int(changeW(Data["该笔记收藏"]))
                        notenum.interact=int(changeW(Data["该笔记点赞"]))+int(changeW(Data["该笔记评论"]))+int(changeW(Data["该笔记收藏"]))
                        notenum.save()
                now = datetime.datetime.now()
                print('-----现在是:'+str(now.hour)+'点'+str(now.minute)+'分 ,爬取数据结束-----')     
                time.sleep(60)
            
    
            headers = self.get_success_headers(serializer.data)
            return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
    
    
    
    class TakeoutViewSet(ModelViewSet):
        """
        数据导出文件列表
        """
        serializer_class = TakeoutSerializer
        permission_classes = [permissions.IsAuthenticated]
        pagination_class = CommonPagination
        def get_queryset(self, *args, **kwargs):
            return Takeout.objects.filter()
        def create(self, request, *args, **kwargs):
            title = request.data['title']
            import os
            import re
            from rednote.toexcel import to_utf8
            path = os.path.dirname(__file__) + os.sep + '..' + os.sep + 'media' + os.sep + 'takeout_back' + os.sep +title+'.xlsx'
            print(path)
            up = ''
            note = ''
            out = ''
            boss = ''
    
            brand = request.data['brand']
            notename = request.data['notename']
            upname = request.data['upname']
            if brand != '' and notename !='' and upname != '':
                notenums = Notenum.objects.filter(deleted__exact='0').filter(note__brand__exact=brand,note__notename__exact=notename,note__upname__upname__exact=upname).order_by('-id')
            elif brand != '' and notename !='':
                notenums = Notenum.objects.filter(deleted__exact='0').filter(note__brand__exact=brand,note__notename__upname__exact=notename).order_by('-id')
            elif notename !='' and upname != '':
                notenums = Notenum.objects.filter(deleted__exact='0').filter(note__notename__exact=notename,note__upname__upname__exact=upname).order_by('-id')
            elif brand != '' and upname != '':
                notenums = Notenum.objects.filter(deleted__exact='0').filter(note__brand__exact=brand,note__upname__upname__exact=upname).order_by('-id')
            elif brand != '':
                notenums = Notenum.objects.filter(deleted__exact='0').filter(note__brand__exact=brand).order_by('-id')
            elif notename !='':
                notenums = Notenum.objects.filter(deleted__exact='0').filter(note__notename__exact=notename).order_by('-id')
            elif upname != '':
                notenums = Notenum.objects.filter(deleted__exact='0').filter(note__upname__upname__exact=upname).order_by('-id')
            else:
                notenums = Notenum.objects.filter(deleted__exact='0').order_by('-id')
            # for onenote in notes:
    
    
            # datas = Notenum.objects.filter(deleted__exact='0',note__exact=note,note__upname__exact=up,note__brand__exact=boss).order_by('-id')
            for data in notenums: 
                #1.获得这条数据指向的笔记
                thisnote=Notes.objects.get(id=data.note.id)
                #笔记类型#笔记角度#推广计划#推广产品
                notetype = str(thisnote.noteType)+'\t'
                noteangle = str(thisnote.noteAngle)+'\t'
                spreadplan = str(thisnote.spreadPlan)+'\t'
                spreadproduct = str(thisnote.spreadProduct)+'\t'
                #2.获取这条笔记指向的人
                noteup = thisnote.upname
                upz = UpItems.objects.get(id=noteup.id)
    
                #红人级别
                choices = str(upz.level)
                uplevel = ''
                if choices == 'super':
                    uplevel ='超头部达人'+'\t'
                elif choices == 'head':
                    uplevel ='头部达人'+'\t'
                elif choices == 'waist':
                    uplevel ='腰部达人'+'\t'
                elif choices == 'kol':
                    uplevel ='高质量KOL'+'\t'
                elif choices == 'primary':
                    uplevel ='初级达人'+'\t'
                elif choices == 'bottom':
                    uplevel ='底部素人'+'\t'
                elif choices == 'quality':
                    uplevel ='优质素人'+'\t'
                elif choices == 'exten':
                    uplevel ='铺量素人'+'\t'
                elif choices == 'initial':
                    uplevel ='未评级'+'\t'
                else:
                    uplevel =''+'\t'
    
                #小红书昵称
                up_name = str(upz.upname)+'\t'
                #3.获取最后的红人数据
                diff = str(re.split(r' ',str(data.createdDate))[0])
                updata = UpDatas.objects.filter(deleted__exact='0',upname__exact=upz.id,createdDate__icontains=diff).order_by('-id').first()
                #笔记总量notenum#粉丝数fansnum#获赞与收藏allnum
                note_num = str(updata.notenum)+'\t'
                note_fun = str(updata.fansnum)+'\t'
                note_all = str(updata.allnum)+'\t'
                #kpi#投放时间
                kpi = str(thisnote.kpi)+'\t'
                putdate = str(thisnote.putDate)+'\t'
                zan = str(data.praisenum)+'\t'#赞
                pin = str(data.talknum)+'\t'#评
                cang = str(data.collectnum)+'\t'#藏
                add = str(data.interact)+'\t'#互动
                #链接#笔记名#品牌#抓取时间
                noteurl = str(thisnote.noteUrl)+'\t'
                notename0 = str(thisnote.notename)+'\t'
                notebrand = str(thisnote.brand)+'\t'
                time = str(re.split(r' ',str(data.createdDate))[0])+'\t'#时间
                out_data = notetype + noteangle + spreadplan + spreadproduct +uplevel + up_name + note_num + note_fun + note_all + kpi + putdate + zan + pin + cang + add + noteurl + notename0 + notebrand +time
                diff1 = noteurl + notename0 + notebrand +time
                if diff1 not in out:
                    out = out+out_data+'\n'
    
            
            heard = '笔记类型\t笔记角度\t推广计划\t推广产品\t红人级别\t小红书昵称\t笔记总量\t粉丝数\t获赞与收藏\t预估kpi\t投放时间\t点赞\t评论\t收藏\t互动\t链接\t笔记名\t品牌\t抓取时间\t\n'
            takeoutstr = heard + out
            f = open(path,'w',encoding='utf-16')
            f.write(takeoutstr)
            f.close()
            serializer = self.get_serializer(data=request.data)
            serializer.is_valid(raise_exception=True)
            serializer.validated_data["fileUrl"]=path
            self.perform_create(serializer)
            headers = self.get_success_headers(serializer.data)
            return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
    

    最终简单的实现效果就做出来了

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 小红书数据采集分析国庆去哪玩

    千次阅读 2019-09-28 12:25:52
    但是去哪里玩成了头大的事情,瞬间想到小红书(https://www.xiaohongshu.com/),号称拥有超过一亿用户的生活方式分享社区,其用户笔记内容涵盖吃穿玩乐买,涉及时尚、护肤、彩妆、美食、旅行、影视、读书、健身等...
  • 小红书的爬虫主要是从搜索入手,爬取某个关键词下的所有笔记,通过调研发现有有两个渠道,第一个是 App,第二个小程序。先说小程序端,通过抓包发现,每篇文章对应着一个 auth-sign ,这个参数应该有小程序内部生成...
  • 小红书API数据采集接口

    千次阅读 2021-01-08 17:08:01
    提供封装好的小红书数据采集接口,通过手机自动化实时采集,接口稳定。 接口使用详情请参考接口文档。 已支持接口列表如下: 小红书关键字搜索 小红书用户信息详情 小红书用户笔记列表 小红书单个笔记详细数据 小红...
  • 原文链接... Xiao Hongshu as a netizen's "grass base", there are wedding planning companies from across the country, new people will choose to understand on the platform to collect ...
  • 采集小红书 数据 爬虫

    万次阅读 热门讨论 2018-09-29 16:43:48
    最新版(2018年9月) 小红书(https://www.xiaohongshu.com/),号称拥有超过一亿用户的生活方式分享社区,其用户笔记内容涵盖吃穿玩乐买,涉及时尚、护肤、彩妆、美食、旅行...小红书数据原本也并不难采集,通过We...
  • 小红书数据实时采集接口,搜索、笔记等 接口文档请参考:小红书API文档 已支持小红书实时采集接口列表: 1. 小红书搜索用户列表 2. 小红书搜索笔记列表 3. 小红书搜索商品列表 4. 小红书用户信息详情 5. 小红书用户...
  • 采集小红书数据 评论 笔记 关系链

    千次阅读 2019-05-20 15:27:21
    支持包括:小红书文章、小红书用户信息、小红书专辑、小红书笔记详情、小红书用户关系、小红书评论回复、小红书评论 接口申请地址:https://www.idataapi.cn/product/detail/1113?rec=baidu_3 部分数据样例: { ...
  • 小红书数据研究

    2020-06-14 20:18:02
    小红书数据价值 小红书是国内很火的社交平台,前期主要吸引了一大批女性用户,是国内做的比较好的电商内容社区,从里面可以挖掘出数据价值 小红书采集方式 app 这一块十分难,无论安卓还是ios你要绕过她的风控系统,...
  • 软件功能: 可以在短短几分钟内检索几百条小红书笔记链接的点赞、收藏、粉丝数、等信息 软件数据查询全自动完成的 支持一键导出数据 ...1、可通过关键词搜索采集小红书所有无水印笔记,也可采集指定用户下.
  • 采集小红书数据爬虫:1.本来是要通过app端的接口去直接采集数据,但是app接口手机端设置本地代理这边开启抓包后就不能正常访问数据。所以就采用了微信小程序里的小红书app接口去采集数据。2.通过 fiddler去抓包,...
  • 提供封装好的小红书数据采集接口,通过手机自动化实时采集,接口稳定。 接口使用详情请参考接口文档。 已支持接口列表如下: 小红书关键字搜索 小红书用户信息详情 小红书用户笔记列表 小红书单个笔记详细数据...
  • 小红书...小红书数据原本也并不难采集,通过Web版的搜索接口,结合相应的搜索词,就可以搜索到感兴趣的笔记,进而收集到笔记的详情数据。然而好景不长,随着小红书完成了一轮超过 3 亿美元的财务
  • 代码部分需要根据自己的模拟器设置进行修改,指定的元素信息每台设备都不相同,需要进行查找修改 环境搭建 :执行命令 pip install Appium-Python-Client 安装 Android Studio (自带Android SDK) ...
  • 各位创作者们大家好~10月创作者红人榜本期包含小红书11大垂类+视频号的创作者榜单。获奖领域包含:时尚、美妆、出行、美食、知识、情感、游戏、影视娱乐、才艺、运动健身、兴趣爱好垂类。经过官方审核后“红人榜”+...
  • 小红书作为一款记录花样青春,分享生活好物的软件自然成为当下年轻人所青睐的平台。尤其受时尚女性的喜爱,据研究显示,超87%的女性成为了小红书的主力用户。 女性作为多数消费的意见主导与小红书自带的转化...
  • 1、可通过关键词搜索采集小红书所有无水印笔记,也可采集指定用户下所有笔记内容,还可以导入单个链接下载笔记; 2、可一键批量导出单个用户所有小红书笔记,包括小红书笔记里面无水印的图片、视频和笔记内容; 3、...
  • 爬虫数据:qq1127049307 wx15779590059 爬虫 视频数据链接抓取

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 337
精华内容 134
关键字:

小红书数据采集