使用大语言模型在线抓取数据
2024年4月19日(更新于2024年5月8日)
如果你不了解网站结构,网络抓取(web scraping)可能会令人望而生畏、不知所措。然而,大语言模型(LLM)可以非常高效地帮助你。在此,我将介绍两种网络抓取的方法。
第一种方法适合初学者,你只需要抓取一个或两个网页。基于文本的抓取包括复制目标网站的 HTML,然后使用任意大语言模型来提取你需要的数据。你可以将 HTML 粘贴到诸如 ChatGPT 等大语言模型中,它便会返回你所需的数据。
第二种方法需要使用 Python。下面的视频解释了如何使用 Python 和 AI 聊天机器人 GPT-4 创建网络抓取器。该抓取器可以汇总多个网站的信息,并回答你关于这些内容的问题。
首先,你需要注册一个 OpenAI 账户并获得 API 密钥。
你还需要安装一个名为 LayeredChain 的 Python 库。
代码由一个名为 web_QA 的函数组成,该函数将一个 URL 列表和一个查询作为输入。
该函数使用 LayeredChain 将网页加载到向量数据库中,然后使用 OpenAI API 调用 GPT-4 来回答你关于网页内容的问题。
视频用一个示例演示了这段代码:用户想了解 Idiom AI。用户将四个关于 Idiom AI 的 URL 粘贴到代码中,并要求 GPT-4 总结 Idiom AI 是什么、它的功能是什么、如何使用它,同时还为用户提供了五个可与 Idiom AI 一起使用的有趣提示。
以下是视频。
以下是脚本。
from langchain.document_loaders import WebBaseLoader
from langchain.indexes import VectorstoreIndexCreator
from langchain.chat_models.openai import ChatOpenAI
from datetime import datetime
import dotenv
dotenv.load_dotenv()
def web_qa(url_list, query, out_name):
openai = ChatOpenAI(
model_name="gpt-3.5-turbo",
max_tokens=2048
)
loader_list = []
for i in url_list:
print('loading url: %s' % i)
loader_list.append(WebBaseLoader(i))
index = VectorstoreIndexCreator().from_loaders(loader_list)
ans = index.query(question=query,
llm=openai)
print("")
print(ans)
outfile_name = out_name + datetime.now().strftime("%m-%d-%y-%H%M%S") + ".out"
with open(outfile_name, 'w') as f:
f.write(ans)
url_list = [
"https://openaimaster.com/how-to-use-ideogram-ai/",
"https://dataconomy.com/2023/08/28/what-is-ideogram-ai-and-how-to-use-it/",
"https://ideogram.ai/launch",
"https://venturebeat.com/ai/watch-out-midjourney-ideogram-launches-ai-image-generator-with-impressive-typography/"
]
prompt = '''
Given the context, please provide the following:
summary of what it is
summary of what it does
summary of how to use it
Please provide 5 interesting prompts that could be used with this AI.
'''
web_qa(url_list, prompt, "summary")
此外,以下是《Journal of Marketing》关于将网络抓取用于研究的一份指南。
在《Journal of Marketing》一个题为“Web Data Scraping for Marketing Research(网络数据抓取用于营销研究)”的网络研讨会上,演讲者讨论了网络数据在营销研究中的重要性以及收集这些数据所面临的挑战。与会专家介绍了一种新的方法论框架,帮助研究人员以有效且可靠的方式收集网络数据。
该框架包括三个阶段:选择来源、设计收集和提取数据。在每个阶段,研究人员都需要仔细考虑一系列因素,例如:
来源选择
质量:研究人员应评估潜在来源网站上数据的质量。这可能涉及评估数据的准确性、完整性和相关性。
稳定性:所选网站应当稳定,其结构或内容不太可能发生重大变化。这将有助于确保所收集的数据在时间上保持一致。
访问便利性:研究人员需要考虑访问所选网站数据的难易程度。有些网站可能会使自动抓取数据变得困难或不可能。
收集设计
数据提取方法:研究人员需要决定如何从所选网站提取数据。这可能涉及编写脚本来自动化数据收集过程。
抽样:研究人员需要决定如何从所选网站对数据进行抽样。这将取决于研究问题和数据的性质。
法律与伦理考量:确保数据抓取过程合法且合乎伦理非常重要。研究人员应尊重所抓取网站的 robots.txt 文件,并避免收集受版权或隐私法保护的数据。
数据提取
数据清理:数据提取完成后,对其进行清理以去除任何错误或不一致之处非常重要。这可能涉及删除重复条目、对数据进行一致格式化以及检查缺失值。
数据监控:研究人员应监控数据提取过程,以确保获得他们预期的数据。这可能涉及定期检查数据中的错误。
演讲者还讨论了文档记录和可复现性在网络数据抓取中的重要性。她建议研究人员仔细记录其数据收集过程,以便他人能够复现其结果。
总体而言,该视频为营销研究中的网络数据抓取提供了有价值的概览。对于有兴趣在研究工作中使用网络数据的研究人员来说,这是一份极好的资源。
以下是视频中的一些要点:
网络数据是营销研究的宝贵资源,但以有效且可靠的方式收集它非常重要。
这一新方法论框架可以帮助研究人员在数据抓取过程的每个阶段考虑重要因素。
抓取数据时需要仔细考虑法律和伦理问题。
文档记录对于可复现性至关重要。
标签: 教程





留言