未提供项目描述
项目描述
🤖 Oxy® 解析器
通过仅描述Pydantic模型来自动解析HTML。
Oxy® 解析器为您处理解析HTML的繁琐工作。它使用Pydantic模型来描述HTML的结构,然后自动将HTML解析为Pydantic模型。
- 描述您期望的HTML结构的Pydantic模型
- 将URL或HTML与Pydantic模型一起传递给Oxy® 解析器
- Oxy® 解析器将解析HTML,并将解析后的数据作为Pydantic模型返回
- Oxy® 解析器还会缓存选择器以供以后重用,因此您无需每次解析相同的HTML时都调用OpenAI的API
支持的缓存后端
- 内存
- 文件
- Redis
查看流程图以获取详细信息
安装
pip install oxyparser
支持的LLM
本项目使用LiteLLM,请参阅文档了解支持的LLM:https://docs.litellm.com.cn/docs/providers
使用方法
您需要设置一个包含以下变量的.env
文件
LLM_API_KEY
:可以是OpenAI密钥、Claude密钥或其他任何LLM提供者密钥。(有关支持的LLM的完整信息,请参阅上面的LiteLLM文档)
LLM_MODEL
:您要使用的模型。(有关支持的LLM的完整信息,请参阅上面的LiteLLM文档)
爬虫密钥:它们是可选的,但如果未提供,您需要自己抓取并将HTML传递给Oxy® 解析器。但是,我们强烈建议使用Oxylabs爬虫,因为它将消除获取HTML的麻烦,并提供许多其他好处,例如IP轮换、处理验证码、绕过封锁等。
点击此处注册Oxylabs免费试用:https://dashboard.oxylabs.io/en/registration?productToBuy=SCRAPI_WEB
OXYLABS_SCRAPER_USER
:您的Oxylabs爬虫用户(可选)OXYLABS_SCRAPER_PASSWORD
:您的Oxylabs爬虫密码(可选)
LLM_API_KEY=your_openai_api_key
LLM_MODEL=gpt-3.5-turbo
OXYLABS_SCRAPER_USER=your_oxylabs_scraper_user # optional
OXYLABS_SCRAPER_PASSWORD=your_oxylabs_scraper_pass # optional
然后您可以使用以下代码将网站解析为结构化数据
完整示例请参阅examples
目录。
from pydantic import BaseModel
from oxyparser.oxyparser import OxyParser
class JobItem(BaseModel):
title: str
recruiter_name: str
location: str
description: str
# this page might expire
# if it does, please replace it with a new one
# https://career.oxylabs.io
# also if you're a python dev and looking for job, hit us up!
URL: str = "https://career.oxylabs.io/job/813b9ac5/python-developer-mid-senior/"
async def main() -> None:
parser = OxyParser()
job_item = await parser.parse(URL, JobItem)
print(job_item)
if __name__ == "__main__":
import asyncio
asyncio.run(main())
如果您有一个HTML字符串而不是URL,也可以将其传递给解析器,如下所示
parser = OxyParser()
html = "<html><body>" "<h1>John</h1>" "<h2>Smith</h2>" "<p>Svitrigailos st.</p>" "<span>2 years old</span></body></html>"
url = "https://example.com" # url is needed to cache selectors
parsed_item = await parser.parse(url=url, model=JobItem, html=html)
print(job_item)
已知问题
存在一些已知的情况,有时提取的xpath无法提取一些数据。例如,当描述非常长或嵌套很多元素时。在这种情况下,目前我们建议手动编辑缓存中的选择器。但这些情况不应经常发生。如果遇到其他问题,请创建一个问题。
贡献
我们欢迎所有贡献。要贡献 - 克隆仓库,创建一个新分支,进行更改并创建一个拉取请求。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
构建发行版
oxyparser-0.1.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7da10bb62c9af3f84b4c00a259d011457cc1fe7ae1b3c3e1bd7b4ec402a0aaf8 |
|
MD5 | 1324eb414140a272d7758062e34fd4db |
|
BLAKE2b-256 | a5adb81815fa679e6b15e4e834b3a76fbd64c145097adfacb3df654b2bbb6ad4 |
oxyparser-0.1.0-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 923e78a17d28a71eb44b9e84c990c42504ef882edf81648387e3c5de40c924bf |
|
MD5 | bb9d01c05616de26ec587b1aed807cd9 |
|
BLAKE2b-256 | 0f7b7fd0924e1703aec14b1258b3cceaecace4fd47062c8c3a16eb336ef4edd3 |