def中如何使用协程方式爬取小红书数据
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下def中如何使用协程方式爬取小红书数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!小红书数据采集教程,使用协程方式爬取小红书 热门页 下的数据from geven
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
访问网站数据库
计算机软件开发销售预测
数据库删除dbf文件
三丰云服务器在哪里申请
北京京师网络安全犯罪方面律师
网络技术面试评估怎么写
sql在软件开发中的作用
中国网络安全平台登录
广州优投网络技术服务有限公司
111网络安全团队
腾讯云云服务器安全设置
网络安全设备运维验收ppt
堡垒服务器ping不通
计算机网络安全专业介绍
施耐德服务器故障7344
高中信息技术数据库用语
全球百大网络安全公司排名
网络安全协议中SA的作用
宁波弘讯软件开发有限公司
如何衡量it软件开发量
查看服务器内存大小
手机号加密存储数据库
幻塔服务器数据
数据库错
知网研学的数据库
临汾网络技术产品介绍
CFPS数据库什么时候更新
计算机网络技术缩写词
bt资源服务器
通信网络安全详细设计步骤