爬取civitai模型prompt
时间: 2025-06-06 13:04:40 浏览: 13
### 如何从 Civitai 爬取模型 Prompt 的数据
要实现从 Civitai 平台爬取模型 Prompt 数据的任务,可以通过 Python 编写脚本并利用其强大的网络请求库 `requests` 和 HTML 解析库 `BeautifulSoup` 来完成。以下是具体的技术细节:
#### 使用 Requests 库发送 HTTP 请求
通过分析 Civitai 的网页结构,可以发现模型页面通常会提供详细的描述以及对应的 Prompt 信息。这些信息一般嵌套在特定的 HTML 标签中。为了获取这些数据,首先需要模拟浏览器行为发起 GET 请求来抓取目标页面的内容。
```python
import requests
from bs4 import BeautifulSoup
url = "https://civitai.com/models/{model_id}" # 替换 {model_id} 为目标模型 ID
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
html_content = response.text
else:
raise Exception(f"Failed to retrieve data: Status Code {response.status_code}")
```
此部分代码定义了一个基本的 HTTP 请求流程,并设置了自定义 User-Agent 头部以模仿真实用户的访问行为[^2]。
#### 利用 Beautiful Soup 进行 DOM 分析
一旦成功接收到响应内容,则需解析返回的数据流以便提取所需字段——即 Prompts 文本串。这里推荐采用 lxml 或者 html.parser 作为解析器引擎配合 BeautifulSoup 工作。
```python
soup = BeautifulSoup(html_content, 'lxml')
prompts_section = soup.find('div', class_='Prompts')
# 假设 prompts 存在于 div.Prompts 下面某个子节点里
if prompts_section is not None:
prompt_texts = [p.text.strip() for p in prompts_section.find_all('pre')]
else:
prompt_texts = []
print(prompt_texts)
```
上述片段展示了如何定位到包含 Prompts 的区域并通过迭代找到所有的 `<pre>` 标记从而收集完整的提示字符串列表[^3]。
需要注意的是,在实际操作过程中可能遇到反爬机制或者动态加载的情况,这要求开发者进一步研究网站的具体交互逻辑甚至考虑引入 Selenium 等自动化测试框架支持更复杂的场景处理。
另外值得注意的一点是关于 embedding 模型的选择上提到过 text2vec-base-chinese 是适用于中文环境下的良好解决方案;而对于英文为主的项目则可以选择其他更适合的语言版本比如 English-specific embeddings 如果涉及到多语种混合应用的话也可以探索 multilingual models 方案[^1]。
最后提醒一下务必遵循各站点的服务条款与隐私政策规定合理合法地开展此类活动以免触犯法律法规造成不必要的麻烦!
阅读全文
相关推荐













