当前位置: 首页 > news >正文

爬虫笔记15——爬取网页数据并使用redis数据库set类型去重存入,以爬取芒果踢V为例

下载redis数据库

首先需要下载redis数据库,可以直接去Redis官网下载。或者可以看这里下载过程。

pycharm项目文件下载redis库

> pip install redis 

然后在程序中连接redis服务:

from redis import RedisredisObj = Redis(host='127.0.0.1', port=6379)

这次笔记记录爬取芒果TV的视频信息,通过md5加密并去重存入Redis数据库。
目标地址:https://www.mgtv.com/lib/2?lastp=list_index&lastp=ch_tv&kind=19&area=10&year=all&sort=c2&chargeInfo=a1&fpa=2912&fpos=
爬取视频的名称,简介、演员及上映时间吧,代码示例:


import requests
import redis
import pymongo
import hashlib
import json
import timeclass MangGuo:url = 'https://pianku.api.mgtv.com/rider/list/pcweb/v3?allowedRC=1&platform=pcweb&channelId=2&pn=3&pc=80&hudong=1&_support=10000000&kind=19&area=10&year=all&chargeInfo=a1&sort=c2&feature=all'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'}def __init__(self):self.redis_obj = redis.Redis(host="localhost", port=6379)self.mongo = pymongo.MongoClient()self.mongo_connection = self.mongo['py_spider']['movies']@classmethoddef get_tv_list(cls):response = requests.get(cls.url, headers=cls.headers).json()# print(response["data"]["hitDocs"])return response["data"]["hitDocs"]def parse_tv_list(self):data_lists = self.get_tv_list()for data in data_lists:deal_data = dict()deal_data["name"] = data["title"]deal_data["desc"] = data["story"]deal_data["stars"] = data["subtitle"]deal_data["year"] = data["year"]print(deal_data)# obj = hashlib.md5()# obj.update(json.dumps(data).encode())# res = obj.hexdigest()hash_obj = hashlib.md5(json.dumps(deal_data).encode()).hexdigest()self.insert_redis(deal_data, hash_obj)# 插入数据到Redis数据库并进行去重def insert_redis(self, data, hash_data):result = self.redis_obj.sadd('movies:filter', hash_data)# 插入数据成功返回1,失败返回0# print(result)if result:print('数据插入成功')# 插入成功说明是没有重复数据的,也就是作去重后多插入一份到MongoDB数据库self.insert_mongodb(data)else:print('重复数据,插入失败')def insert_mongodb(self, data):self.mongo_connection.insert_one(data)# 休眠测试是否同步# time.sleep(1.5)def main(self):self.parse_tv_list()if __name__ == '__main__':manGuo = MangGuo()manGuo.main()

结果如下图,以下是数据库的可视化界面软件:
数据进行加密存入Redis数据库:
在这里插入图片描述
数据存入MongoDB:
在这里插入图片描述

http://www.lryc.cn/news/382144.html

相关文章:

  • 我是如何在markdown编辑器中完成视频的插入和播放的
  • Ltv 数据粘包处理
  • 银联支付,你竟然还不知道它怎么工作?
  • 查找程序中隐藏界面的思路
  • umount
  • electron录制应用-自由画板功能
  • 版本控制工具-git分支管理
  • 医卫医学试题及答案,分享几个实用搜题和学习工具 #学习方法#知识分享#经验分享
  • 在dolphinDB上直接保存一个dataframe为分布式数据表
  • awk
  • 如何加速AI原生应用进程?华为云开天aPaaS提出新范式
  • Matlab基础语法:变量和数据类型,基本运算,矩阵和向量,常用函数,脚本文件
  • 弥补iPhone不足,推荐金鸣识别等几款APP神器
  • KLayout 中的默认数据类型
  • 视频云存储平台LntonCVS国标视频平台功能和应用场景详细介绍
  • C语言 将程序第4,5行改为 c1=197;c2=198;将程序第3行改为int c1,c2;
  • 【总线】AXI4第五课时:信号描述
  • 创建单例模式的六种方式
  • 实用软件下载:CrossOver 2024最新安装包及详细安装教程
  • 开启调试模式
  • pygame 绘制一个大黑脸
  • XMLXXE实体注入
  • 艺术家电gorenje x 设计上海丨用设计诠释“生活的艺术”
  • 【刷题篇】链表
  • 若依框架,小程序访问后端,后端访问客户端,客户端读取图片返回
  • os7安装gitlab
  • 木头姐:将出于经济方面的考虑支持特朗普
  • sql注入登陆绕过
  • QT利用QGraphicsDropShadowEffect效果及自定义按钮来实现一个炫酷键盘
  • 机器学习(一)