def中如何使用协程方式爬取小红书数据

小编给大家分享一下def中如何使用协程方式爬取小红书数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

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

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

看完了这篇文章,相信你对“def中如何使用协程方式爬取小红书数据”有了一定的了解,如果想了解更多相关知识,欢迎关注编程之家行业资讯频道,感谢各位的阅读!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


打造爆款笔记的第一颗胶囊是“选主题”。品牌在创作笔记时,总会遇到不知道写什么内容才能吸引用户的瓶颈期,这就是选主题的问题。我在刚开始做小红书ww
在小红书上,流量推荐机制固然重要,但平台运营机制也影响深远。洞悉平台运营机制,遵守平台运营规则,品牌才能在小红书上走得又远又稳。小红书的平台运营
兵马未动,粮草先行。品牌在入驻小红书前,首先要做的是洞悉小红书的流量推荐机制。小红书的流量推荐机制主要有三种,即个性化推荐机制、社交裂变推荐机制
小红书的第三大核心差异化价值是用户价值。在如今这个产能过剩的时代,品牌要想增加销量、扩大知名度,就必须研究消费者。过去以供给为导向的4P理论已经
小红书的第二大核心差异化价值是营销价值。宝妈晨晨闲来无事喜欢打开小红书,看一看其他用户分享的生活。一次,她看到有个宝妈分享了自己的儿子开玩具车的
小红书的第一大核心差异化价值是社区价值。大熊猫社区发布的文章《社区的价值与发展》中写道:“社区天然就是有价值的,它们汇集了成员的资源、技能、知识
小红书作为一款社交分享平台,很多朋友喜欢在里面浏览自己感兴趣的内容,并发布各种笔记记录,如果想查看推广的订单怎么操作呢?下面就来和小编一起学习一下吧!小红书推广订单查询方法介绍
小红书已经是商家和消费者重要的链接平台,每天产生10亿次的笔记曝光。 想要在众多曝光中脱颖而出,让客户记住。一定要看看这篇小红书运营模式全攻略!如何玩转小红书不仅内容要吸引人,了解规则学会避坑不踩雷也很重
很多同学面对自己的小红书运营数据,很是头疼,内容在认真做却起不到效果,感到非常无力。作者总结了他运营36个小红书账号的7条心得,分享给你,希望对你有所启发。
很多同学面对自己的小红书运营数据,很是头疼,内容在认真做却起不到效果,感到非常无力。作者总结了他运营36个小红书账号的7条心得,分享给你,希望对你有所启发。
小红书作为一款社交分享平台,很多朋友喜欢在上面发布自己的日常,发布的内容可能会被别人看到或评论,如果不想让某个人刷到能单独屏蔽对方吗?下面就由小编来为大家做出解答!
根据是否关注决定。双向关注的人私信聊天无条件和次数限制,但不要引导到站外平台;商家主动跟不是其粉丝的用户说话,在对方未回复之前只能发1条消息;一天只能给20个陌生人发消息。
不能解绑的。一个身份证是能实名制认证一个账号,目的是为了杜绝买卖交易小红书账号;用户只能通过注销账号达到解绑的效果。不过注销之后用户的粉丝、视频也没有了,需重新养号。
看别人小红书,别人是看不到记录的。因为小红书没有浏览记录功能和访客记录功能,只能看到笔记的阅读量、获得的点赞数和收藏数。所以浏览别人的作品对方不会知道;只有收藏、点赞及评论对方才会收到提示。
小红书ip属地不能改,ip属地是通过手机运营商通过当前使用设备来定位展示ip属地的,也无法关闭。小红书ip属地将会根据用户的ip地址进行定位,并且展示;将会根据用户的具体定位在评论、主页展示用户ip地址的省份,境外的用户只会显示到具体的国家。
很多朋友在使用小红书书时想要添加微信好友,但是不知道如何添加,下面小编就给大家介绍一下小红书添加微信好友的方法,一起来看看吧。
很多朋友在小红书软件中都有过一些评论,但是想要删除评论时却找不到删除的方法,那么要怎么才能删除自己的评论呢?下面和小编一起来看看吧。
很多朋友拥有了小红书兑换码后表示不知道怎么使用这个兑换码,那么兑换入口在哪里呢?下面和小编一起来看看小红书兑换码的相关介绍吧。
小红书上面有许多用户分享自己的生活和心得,大家可以浏览自己感兴趣的内容并进行点赞收藏,很多朋友好奇自己点赞的内容别人是否可以查看到呢?下面就由小编来做出解答,快来一起了解吧!
小红书是一个热门的社交平台,个人用户也可以申请成为店主售卖商品。那么小红书如何开店呢?接下来就跟非凡小编一起来看看吧,有需要的小伙伴不要错过!