手记

使用Google Gemini进行网页抓取

Google Gemini 介绍

Google Gemini 是由 Google AI 创建的一系列大型语言模型(LLMs),提供最先进的 AI 能力。Gemini 模型包括:

  • Gemini Ultra — 最大的且最强大的模型在编码、逻辑推理和创意协作等复杂任务中表现出色。可通过 Gemini Advanced(原名 Bard)使用。
  • Gemini Pro — 一款中型模型,针对各种任务进行了优化,其性能可与 Ultra 相媲美。可通过 Gemini Chatbot 和 Google Workspace 和 Google Cloud 使用。Gemini Pro 1.5 在性能上有所提升,包括对长达一百万个 token 的长上下文理解的突破,包括文本、代码、图像、音频和视频。
  • Gemini Nano — 一款轻量级模型,专为设备端使用设计,可将 AI 能力带到手机和平板等小型设备上。可在 Pixel 8 和三星 S24 系列上使用。
  • Gemma — 受 Gemini 启发的开源模型,在较小的规模上提供了最先进的性能,并且遵循负责任的 AI 原则设计。

在这篇博客中,我将解释如何使用Gemini API进行网页抓取并提取所需信息。

例如,让我们从以下网站抓取所有征集提案和联合征集提案:

征稿启事 | 科学技术部 | 科学技术部 (DST) 科学技术部在促进国家科学与技术发展中发挥着关键作用。dst.gov.in 征集提案申请编辑描述birac.nic.in

让我们也不要忘了先获取Gemini API。

登录到Google AI Studio,

Google AI Studio | Google 开发者 AI | Google for DevelopersGoogle AI Studio 是使用我们的下一代多模态生成式 AI 模型 Gemini 快速开始构建项目的最快方式。

向下滚动,找到“获取Gemini API密钥”,然后点击“现在开始”。

点击“继续”

点击“创建API密钥”

点击“在新项目中创建API密钥”

现在你的 Gemini API 密钥已经创建了!!

现在完成了。让我们开始编码吧!!

我正在使用 Pycharm IDE。请确保安装了 google.generativeai、streamlit、requests 和 BeautifulSoup 这些库。

导入上述库

    import streamlit as st  
    import requests  
    from bs4 import BeautifulSoup  
    import os  
    import google.generativeai as genai

初始化 Google API 密钥并导入 Gemini-pro 模型。

st.title("征集提案")  # 页面标题

os.environ['GOOGLE_API_KEY'] = "********************************"  
genai.configure(api_key=os.environ['GOOGLE_API_KEY'])  

model = genai.GenerativeModel('gemini-pro')

创建一个名为 read_input() 的函数,从网站提取原始数据,然后将其作为提示输入到模型中,以结构化数据。

    def read_input():  
      # 所有要抓取的链接的字典。  
      # 如果需要,您可以添加更多链接  
       links = {  
           "1":["DST","https://dst.gov.in/call-for-proposals"],  
           "2":["BIRAC","https://birac.nic.in/cfp.php"]  
       }  
       for i in range(1,3):  
           url = links[str(i)][1] # 获取每个组织的URL  
           r = requests.get(url) # 请求数据  
           soup = BeautifulSoup(r.text, 'html.parser') # 解析HTML元素  
           data = soup.text # 获取原始数据的字符串格式  
           link = soup.find_all('a', href=True) # 获取网站上所有链接的HTML格式列表  
           l = ""  
           for a in link:  
               l = l +"\n"+ a['href'][1:] # 获取实际链接  
          # 创建查询  
           query = data + "组织名称是"+links[str(i)][0]+ "提案征集或联合提案征集的混乱链接:"+l+"\n 创建一个包含以下列的表格:提案征集或联合提案征集及其相应链接、开放日期、截止日期和组织名称。"  
           llm_function(query)

给Gemini展示的一瞥未结构化数据。

创建另一个函数 llm_function() 以生成响应。

    def llm_function(query):  
        response = model.generate_content(query) # 生成响应  
        st.markdown(response.text) # 使用 streamlit 打印出来

调用主函数。

    if __name__ == __main__:  
         read_input()

让我们在终端运行以下命令来运行网站。

    streamlit run app.py

现在,我们可以看到那些未结构化的数据是如何被转换成干净的结构化数据的。这只是开始,AI 模型很快就能帮助我们以 100% 的准确率从互联网上抓取数据。

上述网站只是一个利用 Gemini 模型进行网页抓取的基本示例。为了使其更有用,我们可以在网站上添加一个选项,让用户输入要抓取的网站链接和提示,模型则会提供结构化的数据作为输出。

希望你发现这个教程很有用。编程愉快!!

0人推荐
随时随地看视频
慕课网APP