项目介绍:Black Maria
Black Maria 是什么?
Black Maria 是一个用于网络爬虫的 Python 库,可以通过自然语言对任何网页进行爬取。这意味着用户可以用一种直观、接近日常对话的方式告诉系统他们需要什么数据。Black Maria 利用了大型语言模型(LLM)的优势,使网络爬虫变得更加简单和高效。
如何使用 Black Maria?
Black Maria 采用了护栏(guardrails)技术。护栏是一种指令集,它告诉大型语言模型生成的数据应该是什么样子。通过这种方式,用户可以控制数据的格式和内容。
下面是一个简单的示例代码,展示了如何使用 Black Maria:
from blackmaria import maria
# 要抓取的网页 URL
url="https://yellowjackets.fandom.com/wiki/F_Sharp"
# 设定抓取数据的格式规范
spec=("""
<rail version="0.1">
...
</rail>
""")
# 查询请求,要求获取电影的细节,包括摘要和演员表
query="provide details about the movie,summary,cast,cast.starring,cast.guest_starring,cast.co-starring"
# 使用 night_crawler 方法发送请求,并获取响应
query_response=maria.night_crawler(url=url,spec=spec,query=query)
# 输出抓取的结果
print(query_response)
使用前的准备
想要使用 Black Maria,请确保您的系统已安装 Python 3.6 或更高版本,并将 OPEN_AI_KEY
添加到环境变量中。在获得必要的权限后,您可以通过以下命令安装 Black Maria:
pip install blackmaria
输出示例
Black Maria 生成的数据是结构化的,下面是一个 JSON 格式的输出示例:
{
"movie": {
"summary": "As the teens get their bearings among the wreckage, Misty finds hell on earth quite becoming. In the present: revenge, sex homework and the policeman formerly known as Goth.",
"cast": {
"starring": [
"Lottie Matthews",
"Vanessa Palmer",
"Misty Quigley",
"Shauna Sadecki",
"Natalie Scatorccio",
"Taissa Turner"
],
"guest_starring": [
"Akilah",
"Laura Lee",
"Mari",
"Adam Martin",
"Javi Martinez",
"Travis Martinez",
"Jessica Roberts",
"Jeff Sadecki",
"Ben Scott",
"Jackie Taylor"
],
"co-starring": ["Kevyn Tan", "Simone"]
}
}
}
以上说明了 Black Maria 如何帮助用户轻松提取网页中的信息,例如电影的概要和演员信息。通过直观的语言描述和灵活的输出格式控制,Black Maria 为网络爬虫提供了一种高效、简便的新方法。