def中如何使用协程方式爬取小红书数据
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下def中如何使用协程方式爬取小红书数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!小红书数据采集教程,使用协程方式爬取小红书 热门页 下的数据from geven
千家信息网最后更新 2026年11月01日def中如何使用协程方式爬取小红书数据
小编给大家分享一下def中如何使用协程方式爬取小红书数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
小红书数据采集教程,使用协程方式爬取小红书 热门页 下的数据
from gevent import monkey# 猴子补丁monkey.patch_all()from gevent.pool import Poolfrom queue import Queueimport requestsimport jsonfrom lxml import etreeclass 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() passif __name__ == '__main__': user = RedBookSpider(4) # 需要爬取几页数据 就改为多少 user.run()看完了这篇文章,相信你对"def中如何使用协程方式爬取小红书数据"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
数据
小红
方式
篇文章
热门
任务
内容
完了
教程
数据采集
更多
爬虫
猴子
知识
程序
行业
补丁
详情
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
互联网金融科技
深圳市人人互联网科技有限公司
湖南永感互联网科技有限公司
科技创新与互联网经济
未来的互联网科技
互联网科技小额贷款
上海卓越科技 互联网
互联网科技股有哪些
哈尔滨秒房互联网科技有限公司
天速互联网络科技有限公司
剑昆互联网络科技有限公司临桂
宁夏众和广鑫互联网科技有限公司
互联网还是高科技吗
重庆互联网医院沙龙医盟信息科技
互联网科技和信息
互联网科技研发水平
美国互联网科技实力
互联网科技年终奖
互联网科技大会大佬
云电互联网科技
广州凡科互联网科技
苏州铭阳互联网科技有限公司
特约风豹互联网科技为什么扣费
互联网方面的科技前沿
浙南科技城互联网大厦招聘
厦门江牛科技互联网
陕西九四连强互联网科技有限公司
10位科技互联网大佬
优雇互联网科技有限公司