政务公开 网站建设/百度账号注册申请

政务公开 网站建设,百度账号注册申请,能推广的平台有哪些,商圈外卖网站怎么做文章目录 一、代码整体架构解析二、各部分代码详解1. main()主函数解析2. 会话初始化(伪装浏览器身份)3. 动态参数生成(反爬虫核心机制)4. 列表页抓取(获取小区列表)5. 列表页解析(提取小区信息…

文章目录

  • 一、代码整体架构解析
  • 二、各部分代码详解
    • 1. main()主函数解析
    • 2. 会话初始化(伪装浏览器身份)
    • 3. 动态参数生成(反爬虫核心机制)
    • 4. 列表页抓取(获取小区列表)
    • 5. 列表页解析(提取小区信息)
    • 6. 多线程详情页抓取(高效采集)
    • 7. 详情页解析(深度数据提取)
    • 8. 主流程控制(程序大脑)
  • 三、核心技术点总结
  • 四、完整代码
  • 五、运行效果
  • 六、特别说明(运行不了的时候看这里!)

在这里插入图片描述

上次写了用python爬取安居客二手小区数据,这次应粉丝要求写一篇爬取贝壳网二手小区数据的教程,因为贝壳网的反爬策略比安居客的更为复杂,所以这次就大胆一试!!!
这次教程内容大部分都是由Ai帮我写的,所以可能不太详细!! 欢迎私信或者评论区提问~~
先来看看网页,在这里找到小区,并选择具体的市县区域:
在这里插入图片描述
然后我们F12打开网络看看数据在哪里
在这里插入图片描述
在这里插入图片描述
我们在这个文档里面找到了对应的小区数据,言外之意只需要请求这个url即可得到想要的数据啦~
同时,在这些信息里面还有一个小区详情页的链接,里面有诸如小区的容积率、绿化率、开发商等等信息,我们一起给它爬下来
在这里插入图片描述


大体思路就是:

  1. 先用一些用户信息如浏览器类型、cookie等信息来包装爬虫
  2. 请求一遍小区列表的url来获取小区总数
  3. 通过小区总数来计算需要请求的页数,使用for循环来遍历每一页的小区
  4. 提取每页小区的数据,得到每个小区的详情页链接后继续发送请求来进入详情页
  5. 提取小区详情页数据
  6. 将所有结果保存为一个excel表格

废话不多说,直接上干货~

一、代码整体架构解析

# 导入必要库(相当于工具箱)
import requests  # 网络请求工具
import time      # 时间控制工具
import random    # 随机数生成器
import pandas as pd  # 数据表格工具
from bs4 import BeautifulSoup  # HTML解析器
import math      # 数学计算工具
from concurrent.futures import ThreadPoolExecutor, as_completed  # 多线程工具

下面是整体的函数流程以及每个函数大体的作用~

序号函数名称功能描述输入参数返回值
1init_session(config)初始化网络会话对象config: 用户配置字典requests.Session对象
2get_params(session)生成动态请求参数session: 会话对象请求参数字典
3fetch_list_page()抓取列表页数据session, page_url解析后的数据列表
4parse_list_page(html)解析列表页HTML内容html: 页面源代码字符串小区信息列表
5fetch_detail_batch()批量抓取详情页数据session, urls详情数据字典
6parse_detail_page()解析详情页完整信息session, url详细字段字典
7crawl_full_data()主控流程(分页抓取数据)session合并后的完整数据列表

二、各部分代码详解

1. main()主函数解析

要修改的地方主要有四个,其余的不需要特别的改动!!!!

  1. 城市(city)
  2. 市县(region)
  3. Cookies
  4. excel表格输出的路径
# 主程序入口(程序起点)
if __name__ == "__main__":# ================== 用户配置区域 ==================CONFIG = {"city": "fs",       # 目标城市拼音(如: 佛山->fs,上海->sh)"region": "nanhai", # 目标区域拼音(如: 南海区->nanhai)"cookies": {        # 必需Cookie'lianjia_uuid': '自修修改','lianjia_token': '自行修改','security_ticket': '自行修改'},"srcid": "自行修改"}#输出的excel路径output_name = f'{CONFIG["city"]}_{CONFIG["region"]}_小区数据.xlsx'# ================================================# 初始化会话session = init_session(CONFIG)# 执行爬取start_time = time.time()final_data = crawl_full_data(session)# 保存结果if final_data:df = pd.DataFrame(final_data)[['小区名称', '参考均价', '成交信息', '出租信息', '行政区', '商圈', '建筑年代','详情页均价', '建筑类型', '房屋总数', '楼栋总数', '绿化率', '容积率','交易权属', '建成年代', '供暖类型', '用水类型', '用电类型','物业费', '附近门店', '物业公司', '开发商', '详情页链接']] df.to_excel(output_name, index=False)print(f"数据已保存至: {output_name}")print(f"总计 {len(df)} 条数据,耗时 {(time.time()-start_time)/60:.1f} 分钟")

🔍 ​参数说明:

  • city:目标城市拼音缩写(如佛山→fs,广州→gz)
  • region:目标区域拼音缩写(如天河区→tianhe)
  • cookies:登录贝壳网后浏览器生成的登录凭证(关键!没有它无法获取数据)
  • srcid:加密参数(需从网页源代码中复制,定期更新防止失效)
    在这里插入图片描述

2. 会话初始化(伪装浏览器身份)

def init_session(config):session = requests.Session()  # 创建会话容器session.headers.update({      # 设置请求头(伪装浏览器)'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...',  # 浏览器指纹'Referer': f'https://{config["city"]}.ke.com/'  # 来源页面})session.cookies.update(config["cookies"])  # 加载登录凭证return session

🛡️ ​参数解析:

  • ​Session对象:保持TCP连接复用,提升访问速度
  • ​User-Agent伪装:模拟Chrome浏览器访问(防止被识别为爬虫)
  • Referer伪造:隐藏真实来源页面(如访问北京小区页时,显示来自bj.ke.com)
  • ​Cookie管理:自动携带登录凭证(相当于拿着钥匙开门)

3. 动态参数生成(反爬虫核心机制)

def get_params(session):return {'_t': str(int(time.time() * 1000)),  # 13位时间戳(防重复)'srcid': session.config['srcid']     # 设备指纹(防篡改)}

⏳ ​时间戳的作用:防止重复请求被识别

  • time.time():获取当前时间(精确到秒)
  • *1000:转换成毫秒级精度
  • int():去掉小数部分
  • str():转换成字符串

🔑srcid的重要性:

  1. 设备唯一标识符(类似手机的IMEI号)
  2. 需定期从网页源代码更新(右键网页→查看源代码→搜索srcid)

4. 列表页抓取(获取小区列表)

def fetch_list_page(session, page_url):time.sleep(random.uniform(0.2, 0.4))  # 随机等待0.2-0.4秒response = session.get(page_url, timeout=8)  # 发送网络请求return parse_list_page(response.text)  # 解析HTML内容

⏱️ ​时间控制:

  • random.uniform(0.2,0.4):生成0.2到0.4之间的随机数
  • time.sleep():让程序暂停指定时间
    ​目的:模拟人类浏览行为,防止触发反爬机制

🚨 ​异常处理:
如果请求失败(超时、404错误等),会自动跳过并打印错误信息

5. 列表页解析(提取小区信息)

def parse_list_page(html):soup = BeautifulSoup(html, 'html.parser')  # 创建HTML解析器items = soup.select('li.xiaoquListItem')      # 定位所有小区条目results = []for item in items:info = {'小区名称': item.select_one('.title a').text.strip(),  # 提取名称'参考均价': item.select_one('.totalPrice span').text + '元/㎡' if ... else '暂无数据'# 其他字段类似...}results.append(info)return results

🔍 ​CSS选择器用法:

  • select_one(‘.title a’):选择class为"title"的元素下的第一个标签
  • .text.strip():提取文本内容并去除两端空白
  • ​条件判断:如果某个元素不存在(如无均价信息),显示"暂无数据"

6. 多线程详情页抓取(高效采集)

def fetch_detail_batch(session, urls):with ThreadPoolExecutor(max_workers=3) as executor:# 提交所有URL到线程池future_to_url = {executor.submit(parse_detail_page, url): url for url in urls}# 逐个获取结果for future in as_completed(futures):url = future_to_url[future]details[url] = future.result()time.sleep(random.uniform(0.2, 0.4))  # 保持访问节奏

🚀 ​多线程原理:

  • ThreadPoolExecutor(max_workers=3):同时开启3个线程
  • as_completed():哪个线程先完成就先处理结果
  • ​限速机制:每个请求间隔0.2-0.4秒,避免服务器压力过大

7. 详情页解析(深度数据提取)

def parse_detail_page(session, url):soup = BeautifulSoup(response.text, 'html.parser')# 解析多列布局数据def extract_multi_column():data = {}for col in soup.select('.xiaoquInfoItemCol'):for item in col.select('.xiaoquInfoItem'):label = item.select_one('.xiaoquInfoLabel').text.strip()value = item.select_one('.xiaoquInfoContent').text.strip()data[label] = valuereturn data# 提取关键字段detail_data = {'房屋总数': ''.join(filter(str.isdigit, multi_col_data.get('房屋总数', ''))) or '0','绿化率': multi_col_data.get('绿化率', '').replace('%', '') if multi_col_data.get('绿化率') else '暂无数据'# 其他字段...}return detail_data

🔧 ​数据清洗技巧:

  • filter(str.isdigit, “总计1582户”):提取纯数字(结果:“1582”)
  • replace(‘%’, ‘’):去除百分比符号(结果:“35”)
  • 容错处理:使用or和条件表达式处理缺失字段

8. 主流程控制(程序大脑)

def crawl_full_data(session):try:# 获取总小区数total = int(soup.select_one('h2.total span').text)total_pages = math.ceil(total / 30)  # 每页30条数据print(f"\n当前区域共有 {total} 个小区")print(f"需要爬取 {total_pages} 页数据\n")except Exception as e:print(f"获取总数失败: {str(e)}")total_pages = 1  # 异常时默认只爬取1页all_data = []for page in range(1, total_pages + 1):for retry in range(2):  # 最多重试2次try:list_data = fetch_list_page(page_url)detail_results = fetch_detail_batch(list_data)# 合并数据for item in list_data:item.update(detail_results.get(item['详情页链接'], {}))all_data.extend(list_data)print(f"第{page}页完成,累计{len(all_data)}条数据")breakexcept Exception as e:print(f"第{retry+1}次重试失败: {str(e)}")time.sleep(random.uniform(0.2, 0.4))  # 页间延迟return all_data

📊 ​流程控制要点:

  • ​智能分页:自动计算总页数(例如100个小区→4页)
  • ​双重保障:每页最多重试2次,确保数据完整性
  • 数据合并:将列表页基础信息与详情页数据合并
  • 限速机制:页间访问间隔0.2-0.4秒

三、核心技术点总结

  1. 数据清洗三板斧
过滤非数字:filter(str.isdigit, text) → 保留纯数字
​文本替换:.replace(old, new) → 删除/替换特定字符
条件赋值:value if condition else default → 处理缺失数据
  1. 容错机制设计
 .get(key, default):安全获取字典值,避免KeyError or '默认值':当结果为空时提供兜底方案if condition:严格校验数据存在性
  1. 字符串处理技巧
.strip():去除首尾空白符
.split():按空白符分割字符串
' '.join(list):用空格连接列表元素

四、完整代码

import requests
import time
import random
import pandas as pd
from bs4 import BeautifulSoup
import math
from concurrent.futures import ThreadPoolExecutor, as_completeddef init_session(config):"""初始化会话对象"""session = requests.Session()session.headers.update({'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Referer': f'https://{config["city"]}.ke.com/xiaoqu/{config["region"]}/'})session.cookies.update(config["cookies"])session.config = config  # 存储配置信息return sessiondef get_params(session):"""生成动态请求参数"""return {'_t': str(int(time.time() * 1000)),'srcid': session.config['srcid']}def fetch_list_page(session, page_url):"""抓取列表页数据"""try:time.sleep(random.uniform(0.2, 0.4))response = session.get(page_url, params=get_params(session), timeout=8)response.raise_for_status()return parse_list_page(response.text)except Exception as e:print(f"列表页请求失败: {str(e)}")return []def parse_list_page(html):"""解析列表页信息"""soup = BeautifulSoup(html, 'html.parser')items = soup.select('li.xiaoquListItem')results = []for item in items:try:info = {'小区名称': item.select_one('.title a').text.strip(),'参考均价': f"{item.select_one('.totalPrice span').text}元/㎡" if item.select_one('.totalPrice') else '暂无数据','成交信息': item.select_one('.houseInfo a[href*="chengjiao"]').text.strip() if item.select_one('.houseInfo a[href*="chengjiao"]') else "暂无成交",'出租信息': item.select_one('.houseInfo a[href*="zufang"]').text.strip() if item.select_one('.houseInfo a[href*="zufang"]') else "暂无出租",'行政区': item.select_one('.district').text.strip() if item.select_one('.district') else "未知区域",'商圈': item.select_one('.bizcircle').text.strip() if item.select_one('.bizcircle') else "未知商圈",'建筑年代': ' '.join(item.select_one('.positionInfo').stripped_strings).split('/')[-1].strip() if item.select_one('.positionInfo') else "未知",'详情页链接': item.select_one('a.maidian-detail[href]')['href']}results.append(info)except Exception as e:print(f"解析异常: {str(e)}")return resultsdef fetch_detail_batch(session, urls):"""批量获取详情页数据"""details = {}with ThreadPoolExecutor(max_workers=3) as executor:future_to_url = {executor.submit(parse_detail_page, session, url): url for url in urls}for future in as_completed(future_to_url):url = future_to_url[future]details[url] = future.result()time.sleep(random.uniform(0.2, 0.4))return detailsdef parse_detail_page(session, url):"""解析详情页完整信息"""try:time.sleep(random.uniform(0.6, 1.0))response = session.get(url, params=get_params(session), timeout=10)soup = BeautifulSoup(response.text, 'html.parser')# 辅助函数:安全提取单列信息def safe_extract_single(label_text):try:item = soup.find('span', class_='xiaoquInfoLabel', string=label_text)return item.find_next('span', class_='xiaoquInfoContent').text.strip()except:return '暂无数据'# 辅助函数:处理多列信息def extract_multi_column():data = {}columns = soup.select('.xiaoquInfoItemCol')for col_idx, col in enumerate(columns):items = col.select('.xiaoquInfoItem')for item in items:label = item.select_one('.xiaoquInfoLabel').text.strip()value = item.select_one('.xiaoquInfoContent').text.strip()data[label] = valuereturn data# 处理多列区域数据multi_col_data = extract_multi_column()# 处理单行区域数据(物业费、附近门店等)detail_data = {'建筑类型': multi_col_data.get('建筑类型', '暂无数据'),'房屋总数': ''.join(filter(str.isdigit, multi_col_data.get('房屋总数', ''))) or '0','楼栋总数': ''.join(filter(str.isdigit, multi_col_data.get('楼栋总数', ''))) or '0','绿化率': multi_col_data.get('绿化率', '').replace('%', '').strip(),'容积率': multi_col_data.get('容积率', '暂无数据'),'交易权属': multi_col_data.get('交易权属', '暂无数据'),'建成年代': multi_col_data.get('建成年代', '暂无数据'),'供暖类型': multi_col_data.get('供暖类型', '暂无数据'),'用水类型': multi_col_data.get('用水类型', '暂无数据'),'用电类型': multi_col_data.get('用电类型', '暂无数据'),# 处理单行区域'物业费': safe_extract_single('物业费').split('元')[0].strip(),'附近门店': ' '.join(safe_extract_single('附近门店').replace('\n', ' ').split()),'物业公司': safe_extract_single('物业公司'),'开发商': safe_extract_single('开发商'),'详情页均价': f"{soup.select_one('.xiaoquUnitPrice').text.strip()}元/㎡" if soup.select_one('.xiaoquUnitPrice') else '暂无数据'}return detail_dataexcept Exception as e:print(f"详情页解析异常: {str(e)}")return {}def crawl_full_data(session):"""完整爬取流程"""config = session.configtry:# 获取总小区数response = session.get(f"https://{config['city']}.ke.com/xiaoqu/{config['region']}/",params=get_params(session))soup = BeautifulSoup(response.text, 'html.parser')total = int(soup.select_one('h2.total span').text)total_pages = math.ceil(total / 30)# 打印统计信息print(f"\n当前区域共有 {total} 个小区")print(f"需要爬取 {total_pages} 页数据\n")except Exception as e:print(f"获取总数失败: {str(e)}")total = 0total_pages = 0all_data = []for page in range(1, total_pages + 1):page_url = f"https://{config['city']}.ke.com/xiaoqu/{config['region']}/p{page}"for retry in range(2):try:list_data = fetch_list_page(session, page_url)detail_urls = [item['详情页链接'] for item in list_data]detail_results = fetch_detail_batch(session, detail_urls)for item in list_data:item.update(detail_results.get(item['详情页链接'], {}))all_data.extend(list_data)print(f"第{page}页完成,累计{len(all_data)}条数据")breakexcept Exception as e:print(f"第{retry+1}次重试: {str(e)}")        time.sleep(random.uniform(0.2, 0.4))return all_dataif __name__ == "__main__":# ================== 用户配置区域 ==================CONFIG = {"city": "fs",       # 目标城市拼音(如: 佛山->fs,上海->sh)"region": "nanhai", # 目标区域拼音(如: 南海区->nanhai)"cookies": {        # 必需Cookie'lianjia_uuid': '自行修改','lianjia_token': '自行修改','security_ticket': '自行修改'},"srcid": '自行修改'}#输出的excel路径output_name = f'{CONFIG["city"]}_{CONFIG["region"]}_小区数据.xlsx'# ================================================# 初始化会话session = init_session(CONFIG)# 执行爬取start_time = time.time()final_data = crawl_full_data(session)# 保存结果if final_data:df = pd.DataFrame(final_data)[['小区名称', '参考均价', '成交信息', '出租信息', '行政区', '商圈', '建筑年代','详情页均价', '建筑类型', '房屋总数', '楼栋总数', '绿化率', '容积率','交易权属', '建成年代', '供暖类型', '用水类型', '用电类型','物业费', '附近门店', '物业公司', '开发商', '详情页链接']]df.to_excel(output_name, index=False)print(f"数据已保存至: {output_name}")print(f"总计 {len(df)} 条数据,耗时 {(time.time()-start_time)/60:.1f} 分钟")

五、运行效果

在这里插入图片描述
在这里插入图片描述

六、特别说明(运行不了的时候看这里!)

  1. 记得替换main里面的各种参数,尤其是cookies!用的cookies是你自己浏览器登陆贝壳网,并且完成验证之后的那个cookies!!!
  2. 如果没有修改excel输出路径找不到输出的文件,就在这个代码文件所在的文件夹里面找
  3. 如果嫌爬取速度太慢可以自行修改time.sleep()里的时间,当然间隔越小被反爬的概率越大
  4. 不能保证网页结构后续恒久不变,比如class的标签变了需要重新修改对应的标签,因此代码也具有时效性~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/897468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用服务器搭建一个专属的密码管理工具Vaultwarden

一、服务器配置与Docker环境 ‌实例选型与系统准备‌ ‌推荐配置‌:‌1核2GB内存‌(莱卡云L1型实例),Vaultwarden资源占用低,适合轻量级部署‌34。‌操作系统‌:选择 ‌Ubuntu 22.04 LTS‌,兼容…

IO学习---->线程

1.创建两个线程&#xff0c;分支线程1拷贝文件的前一部分&#xff0c;分支线程2拷贝文件的后一部分 #include <head.h> sem_t sem; long half_size 0; // 全局变量&#xff0c;供所有线程共享void* product(void *arg) {FILE *src fopen("IO.text", "…

深度学习分词器char-level实战详解

一、三种分词器基本介绍 word-level&#xff1a;将文本按照空格或者标点分割成单词&#xff0c;但是词典大小太大 subword-level&#xff1a;词根分词&#xff08;主流&#xff09; char-level&#xff1a;将文本按照字母级别分割成token 二、charlevel代码 导包&#xff1…

基于SpringBoot实现旅游酒店平台功能六

一、前言介绍&#xff1a; 1.1 项目摘要 随着社会的快速发展和人民生活水平的不断提高&#xff0c;旅游已经成为人们休闲娱乐的重要方式之一。人们越来越注重生活的品质和精神文化的追求&#xff0c;旅游需求呈现出爆发式增长。这种增长不仅体现在旅游人数的增加上&#xff0…

git规范提交之commitizen conventional-changelog-cli 安装

一、引言 使用规范的提交信息可以让项目更加模块化、易于维护和理解&#xff0c;同时也便于自动化工具&#xff08;如发布工具或 Changelog 生成器&#xff09;解析和处理提交记录。 通过编写符合规范的提交消息&#xff0c;可以让团队和协作者更好地理解项目的变更历史和版本…

前端实现版本更新自动检测✅

&#x1f916; 作者简介&#xff1a;水煮白菜王&#xff0c;一位资深前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧和知识归纳总结✍。 感谢支持&#x1f495;&#x1f495;&a…

postman接口请求中的 Raw是什么

前言 在现代的网络开发中&#xff0c;API 的使用已经成为数据交换的核心方式之一。然而&#xff0c;在与 API 打交道时&#xff0c;关于如何发送请求体&#xff08;body&#xff09;内容类型的问题常常困扰着开发者们&#xff0c;尤其是“raw”和“json”这两个术语之间的区别…

SQL29 计算用户的平均次日留存率

SQL29 计算用户的平均次日留存率 计算用户的平均次日留存率_牛客题霸_牛客网 题目&#xff1a;现在运营想要查看用户在某天刷题后第二天还会再来刷题的留存率。 示例&#xff1a;question_practice_detail -- 输入&#xff1a; DROP TABLE IF EXISTS question_practice_detai…

深度学习分类回归(衣帽数据集)

一、步骤 1 加载数据集fashion_minst 2 搭建class NeuralNetwork模型 3 设置损失函数&#xff0c;优化器 4 编写评估函数 5 编写训练函数 6 开始训练 7 绘制损失&#xff0c;准确率曲线 二、代码 导包&#xff0c;打印版本号&#xff1a; import matplotlib as mpl im…

Midjourney绘图参数详解:从基础到高级的全面指南

引言 Midjourney作为当前最受欢迎的AI绘图工具之一&#xff0c;其强大的参数系统为用户提供了丰富的创作可能性。本文将深入解析Midjourney的各项参数&#xff0c;帮助开发者更好地掌握这一工具&#xff0c;提升创作效率和质量。 一、基本参数配置 1. 图像比例调整 使用--ar…

音频进阶学习十九——逆系统(简单进行回声消除)

文章目录 前言一、可逆系统1.定义2.解卷积3.逆系统恢复原始信号过程4.逆系统与原系统的零极点关系 二、使用逆系统去除回声获取原信号的频谱原系统和逆系统幅频响应和相频响应使用逆系统恢复原始信号整体代码如下 总结 前言 在上一篇音频进阶学习十八——幅频响应相同系统、全…

vue3 使用sass变量

1. 在<style>中使用scss定义的变量和css变量 1. 在/style/variables.scss文件中定义scss变量 // scss变量 $menuText: #bfcbd9; $menuActiveText: #409eff; $menuBg: #304156; // css变量 :root {--el-menu-active-color: $menuActiveText; // 活动菜单项的文本颜色--el…

gbase8s rss集群通信流程

什么是rss RSS是一种将数据从主服务器复制到备服务器的方法 实例级别的复制 (所有启用日志记录功能的数据库) 基于逻辑日志的复制技术&#xff0c;需要传输大量的逻辑日志,数据库需启用日志模式 通过网络持续将数据复制到备节点 如果主服务器发生故障&#xff0c;那么备用服务…

熵与交叉熵详解

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 ima 知识库 知识库广场搜索&#…

探索在生成扩散模型中基于RAG增强生成的实现与未来

概述 像 Stable Diffusion、Flux 这样的生成扩散模型&#xff0c;以及 Hunyuan 等视频模型&#xff0c;都依赖于在单一、资源密集型的训练过程中通过固定数据集获取的知识。任何在训练之后引入的概念——被称为 知识截止——除非通过 微调 或外部适应技术&#xff08;如 低秩适…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14基础固定表头示例

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

论文阅读分享——UMDF(AAAI-24)

概述 题目&#xff1a;A Unified Self-Distillation Framework for Multimodal Sentiment Analysis with Uncertain Missing Modalities 发表&#xff1a;The Thirty-Eighth AAAI Conference on Artificial Intelligence (AAAI-24) 年份&#xff1a;2024 Github&#xff1a;暂…

【报错】微信小程序预览报错”60001“

1.问题描述 我在微信开发者工具写小程序时&#xff0c;使用http://localhost:8080是可以请求成功的&#xff0c;数据全都可以无报错&#xff0c;但是点击【预览】&#xff0c;用手机扫描二维码浏览时&#xff0c;发现前端图片无返回且报错60001&#xff08;打开开发者模式查看日…

栅格裁剪(Python)

在地理数据处理中&#xff0c;矢量裁剪栅格是一个非常重要的操作&#xff0c;它可以帮助我们提取感兴趣的区域并获得更精确的分析结果。其重要性包括&#xff1a; 区域限定&#xff1a;地球科学研究通常需要关注特定的地理区域。通过矢量裁剪栅格&#xff0c;我们可以将栅格数…

【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab)

效果一览 代码获取私信博主基于麻雀搜索算法&#xff08;SSA&#xff09;的无人机路径规划&#xff08;Matlab&#xff09; 一、算法背景与核心思想 麻雀搜索算法&#xff08;Sparrow Search Algorithm, SSA&#xff09;是一种受麻雀群体觅食行为启发的元启发式算法&#xff0…