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

Python爬虫技术 案例集锦

让我们通过几个实际的案例来说明如何使用Python编写网络爬虫。这些案例将涵盖从简单的静态网页爬取到较为复杂的动态网站交互,并且还会涉及到数据清洗、存储和分析的过程。

案例 1: 简单的静态网页爬虫

假设我们需要从一个简单的静态新闻网站上抓取文章标题和链接。

Python 代码

我们将使用requests库来获取网页内容,使用BeautifulSoup来解析HTML。

import requests
from bs4 import BeautifulSoupdef fetch_articles(url):response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')articles = soup.find_all('div', class_='article')for article in articles:title = article.find('h2').textlink = article.find('a')['href']print(f"Title: {title}\nLink: {link}\n")# 爬取示例网站
fetch_articles('https://example-news-site.com/articles')

案例 2: 动态网站爬虫

对于动态加载的内容,例如使用Ajax加载的网页,我们可以使用Selenium库模拟浏览器行为。

Python 代码

我们将使用Selenium来与JavaScript驱动的网页进行交互。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECdef fetch_articles_selenium(url):driver = webdriver.Chrome()driver.get(url)wait = WebDriverWait(driver, 10)# 等待元素加载完成articles = wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'article')))for article in articles:title = article.find_element(By.TAG_NAME, 'h2').textlink = article.find_element(By.TAG_NAME, 'a').get_attribute('href')print(f"Title: {title}\nLink: {link}\n")driver.quit()# 爬取动态加载内容的网站
fetch_articles_selenium('https://example-dynamic-news-site.com/articles')

案例 3: 数据清洗和存储

一旦数据被爬取,可能需要清洗和整理。我们可以使用Pandas库来处理数据。

Python 代码

我们将使用pandas来清洗数据,并将其保存到CSV文件中。

import pandas as pddef clean_and_store(articles):df = pd.DataFrame(articles, columns=['title', 'link'])df.drop_duplicates(inplace=True)df.to_csv('articles.csv', index=False)print("Data has been cleaned and stored.")# 示例数据
articles = [{'title': 'Example Title 1', 'link': 'http://example.com/1'},{'title': 'Example Title 2', 'link': 'http://example.com/2'},{'title': 'Example Title 1', 'link': 'http://example.com/1'},  # Duplicate entry
]# 清洗并存储数据
clean_and_store(articles)

案例 4: 数据分析和可视化

最后,我们可以使用Matplotlib或Seaborn等库来进行数据分析和可视化。

Python 代码

我们将使用matplotlib来创建一个简单的图表,显示不同类别的文章数量。

import matplotlib.pyplot as pltdef plot_article_categories(df):category_counts = df['category'].value_counts()category_counts.plot(kind='bar')plt.title('Article Categories')plt.xlabel('Category')plt.ylabel('Number of Articles')plt.show()# 示例数据
data = {'title': ['Example Title 1', 'Example Title 2', 'Example Title 3'],'link': ['http://example.com/1', 'http://example.com/2', 'http://example.com/3'],'category': ['Tech', 'Politics', 'Tech']
}
df = pd.DataFrame(data)# 分析并可视化类别分布
plot_article_categories(df)

这些案例涵盖了从基本的网页爬取到更复杂的数据处理过程。你可以根据自己的具体需求进一步扩展这些示例代码。如果你有特定的网站或数据需求,请告诉我,我可以提供更详细的指导。

接下来,我们将继续探讨更高级的案例,这些案例将涵盖动态网站爬取、数据处理、分布式爬虫以及使用机器学习进行内容分析等方面。

案例 5: 动态网站爬虫 (使用Selenium)

对于那些使用JavaScript动态加载内容的网站,普通的HTTP请求可能无法获取完整的内容。在这种情况下,可以使用Selenium库来模拟真实的浏览器行为。

Python 代码

我们将使用Selenium来爬取动态加载的网页内容。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import timedef fetch_articles_selenium(url):options = webdriver.FirefoxOptions()options.add_argument('--headless')  # 无头模式运行driver = webdriver.Firefox(options=options)driver.get(url)# 等待页面加载完成wait = WebDriverWait(driver, 10)articles = wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'article')))# 获取所有文章的信息articles_info = []for article in articles:title = article.find_element(By.TAG_NAME, 'h2').textlink = article.find_element(By.TAG_NAME, 'a').get_attribute('href')articles_info.append({'title': title, 'link': link})driver.quit()return articles_info# 爬取动态加载内容的网站
url = 'https://example-dynamic-news-site.com/articles'
articles = fetch_articles_selenium(url)
print(articles)

案例 6: 数据清洗与处理 (使用Pandas)

一旦数据被爬取,通常需要进行清洗和整理。这里我们使用Pandas库来处理数据。

Python 代码

我们将使用Pandas来清洗数据,并将其保存到CSV文件中。

import pandas as pddef clean_and_store(articles):df = pd.DataFrame(articles)df.drop_duplicates(inplace=True)df.to_csv('articles.csv', index=False)print("Data has been cleaned and stored.")# 示例数据
articles = [{'title': 'Example Title 1', 'link': 'http://example.com/1'},{'title': 'Example Title 2', 'link': 'http://example.com/2'},{'title': 'Example Title 1', 'link': 'http://example.com/1'},  # Duplicate entry
]# 清洗并存储数据
clean_and_store(articles)

案例 7: 分布式爬虫 (使用Scrapy)

当需要爬取大量数据时,使用单个爬虫可能不够高效。Scrapy是一个非常强大的Python爬虫框架,可以很容易地实现分布式爬虫。

Python 代码

我们将使用Scrapy框架来创建一个简单的分布式爬虫。

# items.py
import scrapyclass ArticleItem(scrapy.Item):title = scrapy.Field()link = scrapy.Field()# spiders/example_spider.py
import scrapyclass ExampleSpider(scrapy.Spider):name = "example"start_urls = ['https://example.com/page1','https://example.com/page2',]def parse(self, response):for article in response.css('.article'):title = article.css('h2::text').get()link = article.css('a::attr(href)').get()yield {'title': title, 'link': link}# settings.py
BOT_NAME = 'example'
SPIDER_MODULES = ['example.spiders']
NEWSPIDER_MODULE = 'example.spiders'

案例 8: 内容分析 (使用spaCy)

对于抓取到的文本内容,我们可以使用自然语言处理技术来进行分析。spaCy是一个非常流行的NLP库,可以用来进行词性标注、命名实体识别等任务。

Python 代码

我们将使用spaCy来进行简单的文本分析。

import spacydef analyze_text(text):nlp = spacy.load("en_core_web_sm")doc = nlp(text)for token in doc:print(f"{token.text}: {token.pos_} ({token.dep_})")# 示例文本
text = "This is an example sentence to demonstrate spaCy's capabilities."
analyze_text(text)

案例 9: 数据可视化 (使用Matplotlib)

一旦我们有了数据,就可以使用数据可视化工具来展示数据,帮助理解数据的模式和趋势。

Python 代码

我们将使用Matplotlib来创建一个简单的条形图,展示不同类别文章的数量。

import matplotlib.pyplot as pltdef plot_article_categories(df):category_counts = df['category'].value_counts()category_counts.plot(kind='bar')plt.title('Article Categories')plt.xlabel('Category')plt.ylabel('Number of Articles')plt.show()# 示例数据
data = {'title': ['Example Title 1', 'Example Title 2', 'Example Title 3'],'link': ['http://example.com/1', 'http://example.com/2', 'http://example.com/3'],'category': ['Tech', 'Politics', 'Tech']
}
df = pd.DataFrame(data)# 分析并可视化类别分布
plot_article_categories(df)

这些案例覆盖了从基本的网页爬取到更复杂的数据处理和分析。你可以根据自己的具体需求进一步扩展这些示例代码。如果你有任何特定的需求或者想要探讨更具体的场景,请随时告诉我!

当然可以!接下来,我们将继续探讨更高级的案例,包括使用自然语言处理技术进行内容分析、利用大数据技术进行大规模数据处理以及使用机器学习进行预测分析等。

案例 10: 内容分析 (使用spaCy)

对于抓取到的文本内容,我们可以使用自然语言处理技术来进行分析。spaCy是一个非常流行的NLP库,可以用来进行词性标注、命名实体识别等任务。

Python 代码

我们将使用spaCy来进行简单的文本分析。

import spacydef analyze_text(text):nlp = spacy.load("en_core_web_sm")doc = nlp(text)for entity in doc.ents:print(f"Entity: {entity.text}, Label: {entity.label_}")# 示例文本
text = "Apple is looking at buying U.K. startup for $1 billion"
analyze_text(text)

案例 11: 大规模数据处理 (使用Apache Spark)

当数据量非常大时,使用Apache Spark这样的大数据处理框架可以更高效地处理数据。

Python 代码

我们将使用PySpark来处理大量的文章数据。

from pyspark.sql import SparkSession# 创建SparkSession
spark = SparkSession.builder.appName("WebCrawlerDataProcessing").getOrCreate()# 假设我们有一个包含文章数据的DataFrame
data = [("https://example.com/article1", "This is the content of article 1."),("https://example.com/article2", "This is the content of article 2.")]
columns = ["url", "content"]
df = spark.createDataFrame(data, columns)# 进行数据处理,比如计算每个文章的单词数
word_counts = df.withColumn("word_count", df["content"].str.split(" ").count())# 输出结果
word_counts.show()# 关闭SparkSession
spark.stop()

案例 12: 机器学习预测 (使用scikit-learn)

一旦我们有了足够的数据,就可以使用机器学习算法来进行预测分析。例如,我们可以训练一个分类器来预测文章的主题类别。

Python 代码

我们将使用scikit-learn库来训练一个简单的文本分类器。

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report# 示例数据
texts = ["This is an example of a news article.","This is a blog post about technology.","Another news article on sports.","A review of a new tech product."]
categories = ["news", "blog", "news", "review"]# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(texts, categories, test_size=0.2, random_state=42)# 特征提取
vectorizer = CountVectorizer()
X_train_transformed = vectorizer.fit_transform(X_train)
X_test_transformed = vectorizer.transform(X_test)# 训练分类器
clf = MultinomialNB()
clf.fit(X_train_transformed, y_train)# 预测
predictions = clf.predict(X_test_transformed)# 输出分类报告
print(classification_report(y_test, predictions))

案例 13: 自动化部署 (使用Docker)

为了简化部署过程,我们可以使用Docker来容器化我们的爬虫应用。

Dockerfile
# 使用官方Python基础镜像
FROM python:3.10-slim# 设置工作目录
WORKDIR /app# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt# 复制应用代码
COPY . .# 设置命令
CMD ["python", "crawler.py"]

案例 14: 数据可视化 (使用Plotly)

对于复杂的数据,使用交互式的可视化工具如Plotly可以让用户更直观地理解数据。

Python 代码

我们将使用Plotly来创建一个交互式的条形图,展示不同类别文章的数量。

import plotly.express as px# 示例数据
data = {'title': ['Example Title 1', 'Example Title 2', 'Example Title 3'],'link': ['http://example.com/1', 'http://example.com/2', 'http://example.com/3'],'category': ['Tech', 'Politics', 'Tech']
}
df = pd.DataFrame(data)# 分析并可视化类别分布
fig = px.bar(df, x="category", y="title", color="category", barmode="group")
fig.show()

结论

这些案例展示了如何使用Python和相关库进行网络爬虫开发,并对其进行数据处理、分析和可视化。随着技术的不断发展,未来的爬虫将更加智能和高效,能够更好地应对日益复杂的数据环境。如果你有特定的需求或者想要探讨更具体的场景,请随时告诉我!

接下来,我们将探讨两个更高级的案例,这些案例将涵盖使用自然语言处理技术进行情感分析,以及使用机器学习进行预测性维护等内容。

案例 15: 情感分析 (使用TextBlob)

对于抓取到的评论或社交媒体帖子,我们可以使用情感分析技术来确定公众对某个话题的态度。TextBlob是一个流行的Python库,它可以进行简单的文本处理,包括情感分析。

Python 代码

我们将使用TextBlob来进行情感分析。

from textblob import TextBlobdef analyze_sentiment(text):blob = TextBlob(text)sentiment = blob.sentimentprint(f"Sentiment: polarity={sentiment.polarity}, subjectivity={sentiment.subjectivity}")# 示例文本
text = "I really enjoyed the movie! It was fantastic."
analyze_sentiment(text)

案例 16: 预测性维护 (使用scikit-learn)

在工业或物联网(IoT)领域,预测性维护是一个重要的应用领域。通过监控设备的状态数据,可以预测设备何时可能出现故障,并提前采取行动。这里我们将使用scikit-learn库来构建一个简单的预测模型。

Python 代码

我们将使用scikit-learn库来训练一个简单的分类器,用于预测设备是否可能发生故障。

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score# 示例数据
data = {'temperature': [35, 36, 37, 38, 39, 40, 41, 42],'vibration': [1, 2, 3, 4, 5, 6, 7, 8],'failure': [0, 0, 0, 0, 1, 1, 1, 1]
}
df = pd.DataFrame(data)# 划分训练集和测试集
X = df[['temperature', 'vibration']]
y = df['failure']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 训练分类器
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)# 预测
predictions = clf.predict(X_test)# 输出准确率
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")

案例 17: 数据流处理 (使用Apache Kafka)

在实时数据处理场景中,如实时日志分析、实时交易分析等,数据流处理变得尤为重要。Apache Kafka是一个非常流行的分布式流处理平台,可以用来处理实时数据流。

Python 代码

我们将使用Kafka-python库来消费Kafka中的消息。

from kafka import KafkaConsumer# 创建Kafka消费者
consumer = KafkaConsumer('my-topic',bootstrap_servers=['localhost:9092'],auto_offset_reset='earliest',enable_auto_commit=True,group_id='my-group')# 消费消息
for message in consumer:print(f"Received message: {message.value.decode('utf-8')}")

案例 18: 实时数据分析 (使用Apache Flink)

对于需要实时处理和分析的数据流,Apache Flink是一个强大的流处理引擎。Flink可以用来处理无限数据流,非常适合实时分析场景。

Python 代码

我们将使用Apache Flink的Python API来创建一个简单的流处理任务。

from pyflink.datastream import StreamExecutionEnvironment
from pyflink.table import StreamTableEnvironment, DataTypes
from pyflink.table.descriptors import Schema, OldCsv, FileSystem# 创建流执行环境
env = StreamExecutionEnvironment.get_execution_environment()
table_env = StreamTableEnvironment.create(env)# 读取数据
table_env.connect(FileSystem().path('/path/to/data')).with_format(OldCsv().field('id', DataTypes.STRING()).field('timestamp', DataTypes.TIMESTAMP(3)).field('value', DataTypes.FLOAT())).with_schema(Schema().field('id', DataTypes.STRING()).field('timestamp', DataTypes.TIMESTAMP(3)).field('value', DataTypes.FLOAT())).create_temporary_table('MySource')# 查询数据
table_result = table_env.from_path('MySource') \.filter("value > 10") \.select("id, timestamp, value")# 执行查询
table_result.execute().print()

这些案例展示了如何使用Python和相关库进行更高级的数据处理、分析和实时处理。如果你有特定的需求或者想要探讨更具体的场景,请随时告诉我!

相关文章:

Python爬虫技术 案例集锦

让我们通过几个实际的案例来说明如何使用Python编写网络爬虫。这些案例将涵盖从简单的静态网页爬取到较为复杂的动态网站交互,并且还会涉及到数据清洗、存储和分析的过程。 案例 1: 简单的静态网页爬虫 假设我们需要从一个简单的静态新闻网站上抓取文章标题和链接…...

实战OpenCV之环境安装与配置

OpenCV是什么 OpenCV,英文全称为Open Source Computer Vision Library,是一个开源的计算机视觉和机器学习软件库。它设计用于提供一系列功能强大的算法,以帮助开发者处理图像和视频数据,实现各种视觉任务,包括&#xf…...

Android应用开发面试之Jetpack面试题分析汇总

Jetpack作为Android开发的一个重要框架,其相关问题在Android原生开发面试中也非常常见。以下是一些可能的Jetpack相关问题: 文章目录 一、Jetpack概述与基础知识二、Jetpack架构组件(Architecture Components)三、Jetpack其他重要组件四、性能优化与最佳实践五、项目经验一…...

【数据结构】栈的概念、结构和实现详解

本文来介绍一下数据结构中的栈,以及如何用C语言去实现。 1. 栈的概念及结构 栈:一种特殊的线性表,它只允许在固定的一端进行插入和删除元素的操作。 进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。 栈中元素遵循后进先出…...

LeetCode 每日一题 2024/7/29-2024/8/4

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 7/29 682. 棒球比赛7/30 2961. 双模幂运算7/31 3111. 覆盖所有点的最少矩形数目8/1 LCP 40. 心算挑战8/2 3128. 直角三角形8/3 3143. 正方形中的最多点数8/4 572. 另一棵树…...

Golang死锁vs操作系统死锁

目录 一、死锁 二、Golang死锁场景 2.1 重复上锁 2.2 不会减少的 WaitGroup 2.3 空select 2.4 channel 一、死锁 1.golang中死锁的触发条件: 死锁是当 Goroutine 被阻塞而无法解除阻塞时产生的一种状态。 2.操作系统死锁: 发生死锁时,线…...

c/c++中π怎么定义

c/c中都没有π的专属变量,一般都是自定义。 方法1:#define pi 3.1415926 方法2:使用反三角函数const double pi acos(-1.0);...

基于whisper流式语音识别

为了实现持续监听麦克风并在检测到声音时进行转录,我们可以将流的监听时间设置为无限长。通过使用一个音量门限来检测是否有声音,然后进行转录。 安装依赖 确保安装必要的库: pip install torch torchaudio openai-whisper sounddevice nu…...

Web3 市场暴跌的时候,哪些token跌的少,哪些还涨了? binance 数据爬取及分析

我爬取了 binance 的一千多个币对信息,提取了以 usdt 计价单位的token,然后统计了一下各个 token 的涨跌情况,发现了2个逆势上涨的token,以及一些跌幅比btc,eth少的种类; 跌幅比btc,eth少的种类…...

ffmpeg获得视频的音频文件

要从视频文件中提取音频文件,你可以使用 FFmpeg,这是一个强大的多媒体框架,用于转换、流化以及处理多媒体数据。下面是如何使用 FFmpeg 从视频文件中提取音频的步骤: 1. 确定视频文件的位置: 确保你知道视频文件的完整…...

Robot Operating System——深度解析单线程执行器(SingleThreadedExecutor)执行逻辑

大纲 创建SingleThreadedExecutor新增Nodeadd_nodetrigger_entity_recollectcollect_entities 自旋等待get_next_executablewait_for_workget_next_ready_executableTimerSubscriptionServiceClientWaitableAnyExecutable execute_any_executable 参考资料 在ROS2中&#xff0c…...

【TS】使用npm全局安装typescript

查看npm安装 npm -v 安装typescript npm i -g typescript 查看安装 tsc 这就是标致着安装完成。...

安全用户角色权限

$PATH 搞系统设置设置⾥头path ⽬标包含mysql 可执⾏⽂件,那么就是由使⽤ 在终端使⽤ ./bin/mysql -h192.168.71.164 -P3306 -uroot -proot 1.远程登录前提条件是mysql.user表中的host属性为%,如果是 localhost就不允许远程登录,update…...

代理模式学习

代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象…...

深入理解Go 语言信号量 Semaphore

1. 什么是信号量 信号量的概念是荷兰计算机科学家 1.1 P/V 操作 Dijkstra 在他的论文中为信号量定义了两个操作 : P 和 V 。 1.2 信号量和互斥锁的区别与联系 信号量有两种类型:二元信号量和计数信号量。 2. 信号量的 channel 实现 程序在运行时,…...

VisualStudio2019下载与安装

1.下载 通过百度网盘分享的文件:VisualStudio2019 链接:https://pan.baidu.com/s/16tqm0ZsOkmXTfGmi4LnGbA 提取码:wx60 --来自百度网盘超级会员V3的分享 2.安装...

李宏毅老师机器学习常见英语词汇

目录 1.Regression :回归2.Classification:分类3.local minima:局部最小值4.saddle point:鞍点5.ground truth:它是机器学习算法的参考标准,用于衡量模型的性的和判断模型的准确性6.optimization:优化 1.Regression :回归 2.Clas…...

人工智能时代,程序员如何保持核心竞争力?

人工智能时代,程序员如何保持核心竞争力? 随着AIGC(如chatgpt、midjourney、claude等)大语言模型接二连三的涌现,AI辅助编程工具日益普及,程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工…...

WiFi to Ethernet: 树莓派共享无线连接至有线网口,自动通过Captive Poartal网页登录认证

物联网开发系列:物联网开发之旅① WiFi to Ethernet: 树莓派共享无线连接至有线网口,自动通过Captive Poartal验证物联网开发番外篇之 Captive Portal验证原理 文章目录 背景实现工具实现细节一、将无线连接共享到以太网1. 配置静态IP地址2. 启用IP转发3…...

【神软大数据治理平台-高级动态SQL(接口开发)】

1、背景 业务部门需大数据平台按照所提需求提供企业数据接口,基于神软大数据治理平台-高级动态SQL功能,满足业务需求,如下: (1)业务系统需求: 输入: enterpriseName:…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言:多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...