通过 Streamlit 我们可以使用 Meta 最新的开源大模型 Llama 3.2 轻松搭建自己的 AI 网络爬虫,通过自然语言就能抓取各种网络信息。

搭建环境

在开始搭建之前,请确保具备以下条件:

  • 在本地电脑上安装 Python(建议使用 3.7 版本或更高版本)
  • 下载并安装 Ollama,并确保 Llama 3.2 能够正常运行
  • 对 Python 编程有基本的了解,选择一个代码编辑器(建议使用 VS Code 或 PyCharm)

安装 AI 网络爬虫

1. 克隆 GitHub 仓库

git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git

2. 进入 web_scrapping_ai_agent 文件夹

cd web_scrapping_ai_agent

3. 安装所需的依赖

pip install -r requirements.txt

4. 检查是否能在本地的 11434 端口运行 Ollama
检查是否能在本地的 11434 端口运行 Ollama

创建Streamlit应用程序

创建一个新的文件 local_ai_scrapper.py,并添加以下代码

导入所需库

在文件的顶部添加

  • Streamlit 用于构建网页应用
  • Scrapegraph AI 用于创建与 LLM 的抓取管道
import streamlit as st
from scrapegraphai.graphs import SmartScraperGraph

设置 Streamlit 应用

Streamlit 允许我们创建用户界面。对于这个应用,我们将使用 st.title() 和 st.caption() 添加标题和副标题

st.title("AI 网络爬虫")
st.caption("此应用允许您使用 Llama 3.2 抓取网站")

配置 SmartScraperGraph

  • 将 LLM 设置为 ollama/llama3,并在本地服务,输出格式为 JSON。
  • 将嵌入模型设置为 ollama/nomic-embed-text
graph_config = {
    "llm": {
        "model": "ollama/llama3.2",
        "temperature": 0,
        "format": "json",  # Ollama 需要明确指定格式
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
    },
    "embeddings": {
        "model": "ollama/nomic-embed-text",
        "base_url": "http://localhost:11434",  # 设置 Ollama URL
    },
    "verbose": True,
}

获取网站 URL 和用户提示

  • 使用 st.text_input() 获取要抓取的网站 URL。
  • 使用 st.text_input() 获取用户提示,指定要从网站抓取的内容。
url = st.text_input("请输入您想要抓取网站的 URL")
user_prompt = st.text_input("您希望 AI 爬虫从网站抓取什么?")

初始化 SmartScraperGraph

使用用户提示、网站 URL 和图形配置创建 SmartScraperGraph 实例。

smart_scraper_graph = SmartScraperGraph(
    prompt=user_prompt,
    source=url,
    config=graph_config
)

抓取网站并显示结果

  • 使用 st.button() 添加一个“抓取”按钮。
  • 当按钮被点击时,运行 SmartScraperGraph,并使用 st.write() 显示结果。
if st.button("抓取"):
    result = smart_scraper_graph.run()
    st.write(result)

运行网络爬虫应用

进入项目文件夹,运行以下命令

streamlit run local_ai_scrapper.py

Streamlit 会提供一个本地 URL(通常是 http://localhost:8501)。通过浏览器打开链接就可以用它抓取我们想要的网络信息了。

ScrapeGraphAI 项目地址