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

网络爬虫——爬虫项目案例

本节将全面讲解如何通过实战爬虫项目解决复杂问题。结合最新技术和实际开发需求,案例将涵盖完整开发流程,包括需求分析、实现代码、优化方法和常见问题解决。力求实现高效、可扩展的爬虫项目架构,帮助开发者提升实战能力。


案例 1:电商网站商品信息爬取

1.1 项目背景与目标

电商数据对于价格监控、市场调研有重要意义。本案例通过爬取某电商平台商品信息,实现以下目标:

  • 获取多类商品的基本信息(名称、价格、评价数、库存状态)
  • 支持大规模商品数据采集
  • 数据存储在 MySQL,并支持后续分析与处理

1.2 技术选型

  • HTTP 请求Requests
  • HTML 解析BeautifulSouplxml
  • 多线程与异步处理concurrent.futures + aiohttp
  • 数据库:MySQL 结合 SQLAlchemy ORM
  • 反爬技术:代理池 + 动态 User-Agent

1.3 实现步骤

(1)网站结构分析
  • 使用浏览器的开发者工具(F12)查看商品详情页 HTML 结构
  • 确定目标数据(如商品名称在 <div class="product-title"> 中)
(2)爬取实现代码

实现分为基础爬取和优化方案。

基础爬取实现:

import requests
from bs4 import BeautifulSoup
import pymysql# 数据库初始化
conn = pymysql.connect(host='localhost', user='root', password='password', database='ecommerce')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS products (id INT AUTO_INCREMENT PRIMARY KEY,name TEXT,price FLOAT,reviews INT,stock_status TEXT)
''')# 基本爬虫逻辑
def fetch_page(url):headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}response = requests.get(url, headers=headers)soup = BeautifulSoup(response.content, "lxml")for product in soup.select('.product-item'):name = product.select_one('.product-title').text.strip()price = float(product.select_one('.product-price').text.strip('$'))reviews = int(product.select_one('.review-count').text.strip('reviews'))stock_status = product.select_one('.stock-status').text.strip()cursor.execute('''INSERT INTO products (name, price, reviews, stock_status)VALUES (%s, %s, %s, %s)''', (name, price, reviews, stock_status))conn.commit()fetch_page("https://example.com/products")
conn.close()

并发爬取优化: 通过 concurrent.futures 提高效率。

import concurrent.futures# 多线程爬取实现
def fetch_page_concurrent(urls):with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:results = executor.map(fetch_page, urls)url_list = [f"https://example.com/products?page={i}" for i in range(1, 101)]
fetch_page_concurrent(url_list)

(3)优化与扩展

反爬优化:

  • 代理池: 使用 requests 和代理池绕过 IP 封禁。
  • 动态 User-Agent: 通过 fake_useragent 模块模拟不同的浏览器。
from fake_useragent import UserAgentua = UserAgent()
headers = {"User-Agent": ua.random}

存储优化:

  • 将数据存储到 MongoDB,提升大数据量的读写性能。
  • 定期清洗重复数据,保持数据的高质量。

案例 2:社交媒体数据采集与情感分析

2.1 项目背景与目标

分析社交媒体数据(如 Twitter)有助于了解用户情绪和趋势。目标:

  • 爬取包含特定关键词的推文
  • 使用机器学习模型分析情感(正面、中性、负面)
  • 可视化结果并生成报告

2.2 技术选型

  • API 调用: 使用 Tweepy 访问 Twitter 数据
  • 情感分析: 使用 TextBlobVADER
  • 大数据存储与处理: MongoDB
  • 可视化: Matplotlib + Plotly

2.3 实现步骤

(1)Twitter API 设置

注册开发者账号,获取 API KeyAccess Token

(2)爬取实现代码
import tweepy
from pymongo import MongoClient
from textblob import TextBlob# API 认证
auth = tweepy.OAuthHandler("API_KEY", "API_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)# MongoDB 初始化
client = MongoClient("localhost", 27017)
db = client.twitter_data
collection = db.tweets# 爬取推文
def fetch_tweets(query, count=100):tweets = api.search_tweets(q=query, lang="en", count=count)for tweet in tweets:data = {"text": tweet.text,"user": tweet.user.screen_name,"date": tweet.created_at,"sentiment": TextBlob(tweet.text).sentiment.polarity}collection.insert_one(data)fetch_tweets("climate change")

(3)数据分析

情感分析模型对比:

  • 使用 TextBlob 进行简单情感分析
  • 对比使用 VADER 的精度提升
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzeranalyzer = SentimentIntensityAnalyzer()
text = "I love programming, but debugging is frustrating!"
score = analyzer.polarity_scores(text)
print(score)

数据可视化:

  • 使用 Matplotlib 绘制情感分布图。
  • 使用 Plotly 绘制交互式分析仪表盘。

(4)优化方向
  • 使用多进程提升爬取速度。
  • 增加更多自然语言处理(NLP)步骤,如关键词提取和话题分类。

案例 3:新闻爬取与智能分析

3.1 项目背景与目标

新闻爬虫可以为舆情分析、实时监控提供数据支持。本案例实现以下目标:

  • 爬取国内外新闻网站的标题、正文和发布时间
  • 提取热点关键词
  • 构建新闻分类模型,自动分类文章

3.2 实现步骤

(1)动态加载处理
  • 使用 Selenium 模拟浏览器行为,加载新闻列表页。
  • 结合 Requests 提高爬取速度。
(2)代码实现
from selenium import webdriver
from selenium.webdriver.common.by import By
import timedriver = webdriver.Chrome()
driver.get("https://news.example.com")articles = []
for i in range(5):  # 模拟滚动加载driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(2)items = driver.find_elements(By.CLASS_NAME, "news-item")for item in items:title = item.find_element(By.TAG_NAME, "h2").textlink = item.find_element(By.TAG_NAME, "a").get_attribute("href")articles.append({"title": title, "link": link})
driver.quit()
(3)智能分析
  • 使用 SpaCy 提取文章关键词。
  • 通过 BERT 模型对新闻进行分类。

3.3 热点关键词提取

(1)基于 TF-IDF 的关键词提取

TF-IDF 是一种统计方法,用于衡量一个词语在文本中与整个语料库中的重要性。以下代码实现从爬取的新闻正文中提取关键词。

from sklearn.feature_extraction.text import TfidfVectorizer# 示例新闻数据
documents = ["Climate change is affecting weather patterns globally.","Technology advancements drive growth in the electric vehicle market.","Sports events have been delayed due to weather conditions."
]# 提取关键词
vectorizer = TfidfVectorizer(max_features=10, stop_words='english')
X = vectorizer.fit_transform(documents)
keywords = vectorizer.get_feature_names_out()print("关键词:", keywords)
(2)基于 TextRank 的关键词提取

TextRank 是一种图模型算法,用于提取文本中的重要词语。

import spacy
from spacy.lang.en.stop_words import STOP_WORDS
from collections import Counternlp = spacy.load("en_core_web_sm")def extract_keywords(doc):doc = nlp(doc)words = [token.text for token in doc if token.is_alpha and token.text.lower() not in STOP_WORDS]word_freq = Counter(words)return word_freq.most_common(5)news_article = "Artificial intelligence is revolutionizing industries, transforming business processes, and changing daily lives."
keywords = extract_keywords(news_article)print("关键词:", keywords)

3.4 新闻分类

(1)文本分类模型

使用机器学习算法(如逻辑回归、支持向量机)或深度学习(如 BERT)对新闻进行分类。

示例代码:基于 Naive Bayes 的新闻分类

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB# 数据集示例
news = [("Electric vehicles are the future of transportation.", "Technology"),("The recent hurricane caused severe damage.", "Weather"),("Football championships have been postponed.", "Sports"),("AI is transforming healthcare and automation.", "Technology"),("Rains are expected to increase flood risks.", "Weather")
]texts, labels = zip(*news)
vectorizer = CountVectorizer(stop_words='english')
X = vectorizer.fit_transform(texts)
y = labels# 训练分类模型
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = MultinomialNB()
model.fit(X_train, y_train)# 测试分类
sample_news = ["AI advancements in robotics", "Storms predicted for next week"]
sample_vectors = vectorizer.transform(sample_news)
predictions = model.predict(sample_vectors)print("分类结果:", predictions)

3.5 数据可视化与分析报告

爬取的数据通过分析后,可视化展示结果以提高洞察力。

(1)关键词云

关键词云可直观展示高频词汇。

from wordcloud import WordCloud
import matplotlib.pyplot as plttext = " ".join(documents)  # 文本合并
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
(2)情感分析分布

结合 Matplotlib 绘制情感分析结果的分布图。

import matplotlib.pyplot as plt# 示例情感分析结果
sentiments = [0.1, -0.4, 0.3, 0.5, -0.1]  # 正负情感分数plt.hist(sentiments, bins=5, color='blue', edgecolor='black')
plt.title("情感分布")
plt.xlabel("情感分数")
plt.ylabel("频率")
plt.show()

3.6 项目优化与扩展

(1)高效爬取优化
  • 异步爬取: 使用 aiohttp 实现大规模爬取,提升效率。
  • 增量爬取: 定期监控目标网站更新,只抓取新增内容。
(2)数据处理优化
  • 使用自然语言处理(NLP)技术提取实体(如人名、地名)。
  • 通过分类模型不断更新,支持更多领域的新闻。
(3)实时分析
  • 利用 Kafka 流式处理框架,结合 Spark 或 Flink,实现实时数据采集与分析。
  • 在仪表盘中动态展示新闻热点和情感趋势。

小结

本章的三个案例涵盖了从电商、社交媒体到新闻网站的爬取与分析,详细介绍了从基础爬取到高级数据处理与分析的全流程。在实际开发中,可以根据需求选择适合的技术栈和策略,实现高效爬虫项目。

 

相关文章:

网络爬虫——爬虫项目案例

本节将全面讲解如何通过实战爬虫项目解决复杂问题。结合最新技术和实际开发需求&#xff0c;案例将涵盖完整开发流程&#xff0c;包括需求分析、实现代码、优化方法和常见问题解决。力求实现高效、可扩展的爬虫项目架构&#xff0c;帮助开发者提升实战能力。 案例 1&#xff1a…...

JAVA中的Lamda表达式

JAVA中的Lamda表达式 Lambda 表达式的语法使用场景示例代码1.代替匿名内部类2. 带参数的 Lambda 表达式3. 与集合框架结合使用4. 使用 Stream 操作 总结 Java 的 Lambda 表达式是 Java 8 引入的一个新特性&#xff0c;用于简化代码&#xff0c;特别是在处理函数式编程时。Lambd…...

经典游戏:飞机大战游戏python设计与实现

《飞机大战》是一款经典的二维飞行射击游戏&#xff0c;其核心玩法是控制玩家飞机与敌机作战&#xff0c;通过击落敌机获取分数并尽量避免被敌机击中。根据提供的代码&#xff0c;飞机大战的设计和实现可以分为以下几个主要部分&#xff1a;游戏初始化、游戏界面设计、玩家控制…...

网络爬虫——常见问题与调试技巧

在开发网络爬虫的过程中&#xff0c;开发者常常会遇到各种问题&#xff0c;例如网页加载失败、数据提取错误、反爬机制限制等。以下内容将结合实际经验和技术方案&#xff0c;详细介绍解决常见错误的方法&#xff0c;以及如何高效调试和优化爬虫代码。 1. 爬虫过程中常见的错误…...

深入理解TensorFlow中的形状处理函数

摘要 在深度学习模型的构建过程中&#xff0c;张量&#xff08;Tensor&#xff09;的形状管理是一项至关重要的任务。特别是在使用TensorFlow等框架时&#xff0c;确保张量的形状符合预期是保证模型正确运行的基础。本文将详细介绍几个常用的形状处理函数&#xff0c;包括get_…...

macOS 无法安装第三方app,启用任何来源的方法

升级新版本 MacOS 后&#xff0c;安装下载的软件时&#xff0c;不能在 ”安全性与隐私” 中找不到 ”任何来源” 选项。 1. 允许展示任何来源 点击 启动器 (Launchpad) – 其他 (Other) – 终端 (Terminal)&#xff1a; 打开终端后&#xff0c;输入以下代码回车&#xff1a; …...

Leetcode148. 排序链表(HOT100)

链接 我写的错误代码&#xff1a; class Solution { public:ListNode* sortList(ListNode* head) {if (!head || !head->next)return head;ListNode* fast head;ListNode* slow head;while (fast&&fast->next) {fast fast->next->next;slow slow->…...

Linux线程_线程互斥_线程同步

一.线程互斥 1.进程线程间的互斥相关概念 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源临界区&#xff1a;每个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区互斥&#xff1a;任何时刻&#xff0c;互斥保证有且只有一个执行流进入临界区&…...

【Spiffo】环境配置:VScode+Windows开发环境

摘要&#xff1a; 在Linux下直接开发有时候不习惯快捷键和操作逻辑&#xff0c;用Windows的话其插件和工具都更齐全、方便&#xff0c;所以配置一个Windows的开发环境能一定程度提升效率。 思路&#xff1a; 自己本地网络内远程连接自己的虚拟机&#xff08;假定用的是虚拟机…...

DevExpress控件 基本使用

DevExpress控件 一、DevExpress简介 1、所有编辑器的公共功能 全部都可以绑定数据&#xff1b; 全部都可以独立使用或用于由 Developer Express 提供的容器控件 (XtraGrid、XtraVerticalGrid、XtraTreeList 和 XtraBars) 内的内置编辑&#xff1b; 全部都使用相同的样式、外…...

设计模式——装饰器模式

装饰器模式是结构型设计模式&#xff0c;在Python中有一个非常著名的装饰器wrapper&#xff0c;它的实现方法就是使用了该设计模式&#xff0c;装饰器可以修饰类也可以修饰函数。 从类的设计上说&#xff0c;他的本质是在不定义子类的情况下动态的给对象添加一些额外的功能。举…...

【编程题目】列表、元组及集合

一.列表的题目 题目1:列表反转与排序 描述:给定一个整数列表,首先反转该列表,然后对其进行升序排序。最后输出处理后的列表。输入:一个整数列表,例如 [3, 1, 4, 1, 5, 9]输出:处理后的列表,例如 [1, 1, 3, 4, 5, 9]示例:input_list = [3, 1, 4, 1, 5, 9] # 你的代码 …...

【大数据学习 | Spark-Core】RDD的缓存(cache and checkpoint)

1. 单应用缓存&#xff1a;cache 1.1 cache算子 cache算子能够缓存中间结果数据到各个executor中&#xff0c;后续的任务如果需要这部分数据就可以直接使用避免大量的重复执行和运算。 rdd 存储级别中默认使用的算子cache算子&#xff0c;cache算子的底层调用的是persist算子…...

自主研发,基于PHP+ vue2+element+ laravel8+ mysql5.7+ vscode开发的不良事件管理系统源码,不良事件管理系统源码

不良事件上报系统源码&#xff0c;不良事件管理系统源码&#xff0c;PHP源码 不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”&#xff0c;结合预存上百套已正在使用的模板&#xff0…...

哈希表理解与底层模拟实现

内容摘要 本文内容包括红黑树和哈希表的性能比较逻辑分析及实现、哈希表的概念、哈希表映射关系建立的最常用的两种方法直接地址法和除留余数法介绍、介绍了哈希冲突的原因以及解决解决哈希冲突的方法、负载因子的概念、哈希表的扩容、开散列实现哈希表的思路及代码实现、闭散列…...

docker compose的安装和使用

1. Docker Compose 简介 Docker Compose 是一个工具&#xff0c;用于定义和运行多容器的 Docker 应用。通过编写一个 docker-compose.yml 文件&#xff0c;可以一次性启动所有容器&#xff0c;并且方便管理容器之间的依赖。 2. 安装 Docker Compose 前提条件 确保已安装 Do…...

17种Kubernetes安全检测工具详解

随着Kubernetes的广泛应用,确保其安全性就显得尤为重要。好在现有很多优秀的安全检测工具,可以帮助我们发现和修复Kubernetes集群中的安全隐患。本文将全面介绍17种常用的Kubernetes安全检测工具。 Kube-benchKube-hunterKubesec.ioTrivyKube-auditKube-secKube-vulnkube-scana…...

Python遥感开发之CGCS2000转换WGS84地理坐标系

Python遥感开发之CGCS2000转换WGS84地理坐标系 1 CGC2000坐标系介绍2 WGS84地理坐标系介绍3 代码实现CGCS2000转换WGS84地理坐标系 前言&#xff1a;主要借助pyproj实现从CGCS2000高斯-克吕格3度带&#xff08;EPSG:4547&#xff09;转换到WGS84地理坐标系&#xff08;EPSG:432…...

FAX动作文件优化脚本(MAX清理多余关键帧插件)

大较好,为大家介绍一个节省FBX容量的插件!只保留有用的动画轴向,其他不参与动画运动的清除! 一.插件目的:: 1.我们使用的U3D引擎产生的游戏资源包容量太大,故全方位优化动画资源; 2.在max曲线编辑器内,点取轴向太过麻烦,费事,直观清除帧大大提高效率。 如: 二:…...

Springboot集成ElasticSearch实现minio文件内容全文检索

一、docker安装Elasticsearch &#xff08;1&#xff09;springboot和Elasticsearch的版本对应关系如下&#xff0c;请看版本对应&#xff1a; 注意安装对应版本&#xff0c;否则可能会出现一些未知的错误。 &#xff08;2&#xff09;拉取镜像 docker pull elasticsearch:7…...

Python 中的 | 符号

Python 中的 | 符号 正文用法 1用法2 正文 今天遇到了一个符号 |&#xff0c;本文将对符号 | 的意思进行说明。 x: int 1 print(x) # 1上述代码中&#xff0c;:int 表示的是注释内容&#xff0c;这个在 python 中的注释 一文中我们已经进行了说明。 用法 1 有些时候我们会…...

网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务

网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务 IDS入侵检测系统 Intrusion Detection System 安全检测系统&#xff0c;通过监控网络流量、系统日志等信息&#xff0c;来检测系统中的安全漏洞、异常行为和入侵行为。 分为&am…...

记录elasticsearch-analysis-dynamic-synonym从8.15.0升级到8.16.0所遇到的问题

记录elasticsearch-analysis-dynamic-synonym从8.15.0升级到8.16.0所遇到的问题 一、打包步骤 步骤一、linux系统下执行elasticsearch-module中的build.sh脚本 步骤二、maven环境下elasticsearch-cluster-runner执行maven install命令安装到本地maven仓库。 步骤三、修改版…...

IDEA怎么定位java类所用maven依赖版本及引用位置

在实际开发中&#xff0c;我们可能会遇到需要搞清楚代码所用依赖版本号及引用位置的场景&#xff0c;便于排查问题&#xff0c;怎么通过IDEA实现呢&#xff1f; 可以在IDEA中打开项目&#xff0c;右键点击maven的pom.xml文件&#xff0c;或者在maven窗口下选中项目&#xff0c;…...

react native 安装好apk后无法打开

react native 打包好apk安装完成&#xff0c;没有打开app按钮&#xff0c; 在AndroidManifest.xml中 <intent-filter><action android:name"android.intent.action.MAIN" /><category android:name"android.intent.category.LAUNCHER" /&…...

HTML5 SVG

HTML5 SVG SVG(Scalable Vector Graphics)是一种基于XML的图像格式,用于在网页上创建矢量图形。与传统的位图图像(如PNG和JPEG)不同,SVG图像可以无限放大而不失真,因为它们是由直线和曲线定义的数学路径,而不是像素点。HTML5支持直接在网页中嵌入SVG,使得网页设计更加…...

【LeetCode每日一题】——485.最大连续 1 的个数

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 数组 二【题目难度】 LeetCode 三【题目编号】 485.最大连续 1 的个数 四【题目描述】 给定…...

Python语言就业方向有哪些?

Python语言的就业方向非常广泛&#xff0c;涵盖了多个领域和职位&#xff0c;主要包括&#xff1a; Web开发 Python在Web开发领域有着广泛的应用&#xff0c;特别是通过框架如Django、Flask等。Python可以帮助开发者快速搭建网站&#xff0c;与各种前端技术集成&#xff0c;从而…...

SpringSecurity创建一个简单的自定义表单的认证应用

1、SpringSecurity 自定义表单 在 Spring Security 中创建自定义表单认证应用是一个常见的需求&#xff0c;特别是在需要自定义登录页面、认证逻辑或添加额外的表单字段时。以下是一个详细的步骤指南&#xff0c;帮助你创建一个自定义表单认证应用。 2、基于 SpringSecurity 的…...

wpf 事件转命令的方式

1&#xff0c;方式1 <StackPanel Background"Transparent"><StackPanel.InputBindings><KeyBinding Command"{Binding ChangeColorCommand}"CommandParameter"{Binding ElementNamecolorPicker, PathSelectedItem}"Key"{Bi…...

Docker 容器的初始化设置

虽然现在Conntainerd 大有取代Docker作为容器运行时的趋势&#xff0c;但是docker还是有自己的优势在。尤其是对于开发者来讲&#xff0c;使用Docker 比使用 containerd 方便很多&#xff0c;尤其是在Docker Desktop等工具的加持下。 本文主要面向Docker的初、中级学者&#xf…...

python里的数据结构

列表&#xff08;List&#xff09; 定义和特点&#xff1a; 列表是一种有序的可变序列&#xff0c;可包含不同类型的元素&#xff0c;如整数、字符串、列表等。可以通过索引访问和修改元素&#xff0c;索引从 0 开始。代码示例&#xff1a; my_list [1, 2, apple, [4, 5]] pr…...

Ros Noetic 20.04 跑通mpc_ros包保姆级教程

前言: 本文将简述mpc_ros包在noetic20.04中的安装,mpc是 一种跟踪、MPC_ROS 是一个基于ROS(Robot Operating System)的模型预测控制(Model Predictive Control,MPC)库。该项目旨在为机器人控制提供一个灵活且高效的MPC实现,使得开发者能够在ROS环境中轻松集成和使用MPC…...

MySQL 没有数据闪回?看 zCloud 如何补齐MySQL数据恢复能力

ENMOTECH 上一篇文章为大家介绍了某金融科技企业通过 zCloud 多元数据库智能管理平台的告警中心“警警”有条地管理告警并进行敏捷处置的实践案例。本篇跟大家继续分享该案例客户如何利用 zCloud 备份恢复模块下的Binlog解析功能补齐 MySQL 数据恢复能力&#xff0c;让运维人员…...

k8s集群加入node节点为ubuntu 22.04

文章目录 1.环境准备1.1 关闭无用服务1.2 环境和网络1.3 apt源1.4 系统优化 2. 装containerd3. 接入k8s集群3.1 kubelet、kubeadm、kubectl安装3.2 缺少一个镜像3.3 接入k8s集群 4. 一些相关问题 1.环境准备 rootcto-gpu-pro-n01:~# lsb_release -a No LSB modules are availa…...

提取图片高频信息

提取图片高频信息 示例-输入&#xff1a; 示例-输出&#xff1a; 代码实现&#xff1a; import cv2 import numpy as npdef edge_calc(image):src cv2.GaussianBlur(image, (3, 3), 0)ddepth cv2.CV_16Sgray cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)grad_x cv2.Scharr(g…...

向量数据库FAISS之四:向量检索和 FAISS

来自 YouTube 1.相似度搜索的传统方法(Jaccard, w-shingling, Levenshtein) 1.Jaccard 距离 公式 Jaccard ( A , B ) 1 − ∣ A ∩ B ∣ ∣ A ∪ B ∣ \text{Jaccard}(A, B) 1 - \frac{|A \cap B|}{|A \cup B|} Jaccard(A,B)1−∣A∪B∣∣A∩B∣​ 其中&#xff0c; A 和 …...

Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复

目录 安装包 flume的部署 负载均衡测试 故障恢复 安装包 在这里给大家准备好了flume的安装包 通过网盘分享的文件&#xff1a;apache-flume-1.9.0-bin.tar.gz 链接: https://pan.baidu.com/s/1DXMA4PxdDtUQeMB4J62xoQ 提取码: euz7 --来自百度网盘超级会员v4的分享 ----…...

行列式的理解与计算:线性代数中的核心概念

开发领域&#xff1a;前端开发 | AI 应用 | Web3D | 元宇宙 技术栈&#xff1a;JavaScript、React、ThreeJs、WebGL、Go 经验经验&#xff1a;6 年 前端开发经验&#xff0c;专注于图形渲染和 AI 技术 开源项目&#xff1a;github 简智未来、数字孪生引擎、前端面试题 大家好&a…...

DimensionX:单图生成任意的3d/4d视图

DimensionX:单图生成任意的3d/4d视图 通俗易懂的来说 在我们的方法中&#xff0c;关键是如何从一张图片生成动态的3D和4D场景。我们使用一个叫做ST-Director的工具&#xff0c;它可以分开处理空间&#xff08;3D&#xff09;和时间&#xff08;4D&#xff09;两个方面。想象一…...

k8s上面的Redis集群链接不上master的解决办法

问题描述 之前在k8s上面部署了一台node&#xff0c;然后创建了6个redis的pod&#xff0c;构建了一个redis的集群&#xff0c;正常运行。 最近添加了一台slave node&#xff0c;然后把其中的几个redis的pod调度到了slave node上面&#xff0c;结果集群就起不来了&#xff0c;…...

芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号)

芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号) 本期是平台君和您分享的第113期内容 前一段时间,高通公司(Qualcomm)发布安全警告称,提供的60多款芯片潜在严重的“零日漏洞”,芯片安全再一次暴露在大众视野。 那什么是“零日漏洞”?平台君从网上找了一段…...

《线性代数的本质》

之前收藏的一门课&#xff0c;刚好期末复习&#xff0c;顺便看一看哈哈 课程链接&#xff1a;【线性代数的本质】合集-转载于3Blue1Brown官方双语】 向量究竟是什么 线性代数中最基础、最根源的组成部分就是向量&#xff0c;需要先明白什么是向量 不同专业对向量的看法 物理专…...

计算机视觉 1-8章 (硕士)

文章目录 零、前言1.先行课程&#xff1a;python、深度学习、数字图像处理2.查文献3.环境安装 第一章&#xff1a;概论1.计算机视觉的概念2.机器学习 第二章&#xff1a;图像处理相关基础1.图像的概念2.图像处理3.滤波器4.卷积神经网络CNN5.图像的多层表示&#xff1a;图像金字…...

SpringMVC

七、SpringMVC &#xff08;1&#xff09;SpringMVC简介 SpringMVC概述 SpringMVC技术与Servlet技术功能等同&#xff0c;均属于web层开发技术&#xff0c;web程序大都基于三层架构实现 如果所有的处理都交给Servlet来处理的话&#xff0c;所有的东西都耦合在一起&#xff0c…...

使用llama.cpp进行量化和部署

git clone https://github.com/ggerganov/llama.cpp cd llama.cpp &#x1f5a5;️ CPU 版本 cmake -B build_cpu cmake --build build_cpu --config Release &#x1f5a5;️ CUDA 版本 cmake -B build_cuda -DLLAMA_CUDAON cmake --build build_cuda --config Release -j …...

iOS构建版本以及Hbuilder打iOS的ipa包全流程

目录 Hbuilder打ipa包 打包之前进行应用配置 应用版本号设置 使用广告标识设置 iOS-云打包 下载并转移安装包 使用Transporter提交版本 应用简介 下载应用 账号登录 提交安装包到apple store connect 在apple开发者平台上确认 总结 本篇文章详细的介绍了使用Hbuil…...

DB-GPT V0.6.2 版本更新:牵手libro社区、GraphRAG图谱构建能力增强等

DB-GPT V0.6.2版本现已上线&#xff0c;快速预览新特性&#xff1a; 新特性 1、DB-GPT 社区和 libro 社区共同发布 AWEL Notebook 功能 libro&#xff1a;灵活定制、轻松集成的 Notebook 产品方案。 社区地址&#xff1a;https://github.com/difizen/libro 使用教程&#xf…...

Chrome 浏览器 131 版本新特性

Chrome 浏览器 131 版本新特性 一、Chrome 浏览器 131 版本更新 1. 在 iOS 上使用 Google Lens 搜索 自 Chrome 126 版本以来&#xff0c;用户可以通过 Google Lens 搜索屏幕上看到的任何图片或文字。 要使用此功能&#xff0c;请访问网站&#xff0c;并点击聚焦时出现在地…...

数据结构初识

目录 1.初识 2.时间复杂度 常见时间复杂度举例&#xff1a; 3.空间复杂度 4.包装类&简单认识泛型 4.1装箱和拆箱 5.泛型 6.泛型的上界 7.泛型方法 8.List接口 1.初识 1.多画图 2.多思考 3.多写代码 4.多做题 牛客网-题库/在线编程/剑指offer 算法篇&#xff1a…...