一个从在线印尼词典(KBBI)抓取网页的模块。
项目描述
kbbi-python
Python模块,用于从KBBI在线获取单词/短语的页面。
安装
通过pip
pip install kbbi
手动
- 安装依赖包(
requests
,BeautifulSoup4
,和appdirs
)。 - 克隆此存储库或下载
kbbi.py
。 - 将
kbbi.py
放置在您想要的目录中。
使用方法
通过Python代码
创建新的KBBI
对象(例如:kata = KBBI('kata kunci')
),然后通过调用str(kata)
或通过调用kata.serialisasi()
获取其序列化结果的dict
来利用其str
表示。如果不需要示例(如果有的话),请使用__str__(contao=False)
。
更多信息,请参阅以下示例。
>>> from kbbi import KBBI
>>> cinta = KBBI('cinta')
>>> print(cinta)
cin.ta
1. (a) suka sekali; sayang benar: orang tuaku -- kepada kami semua; -- kepada sesama makhluk
2. (a) kasih sekali; terpikat (antara laki-laki dan perempuan): sebenarnya dia tidak -- kepada lelaki itu, tetapi hanya menginginkan hartanya
3. (a) ingin sekali; berharap sekali; rindu: makin ditindas makin terasa betapa --nya akan kemerdekaan
4. (a) (kl) susah hati (khawatir); risau: tiada terperikan lagi --nya ditinggalkan ayahnya itu
>>> print(cinta.__str__(contoh=False))
cin.ta
1. (a) suka sekali; sayang benar
2. (a) kasih sekali; terpikat (antara laki-laki dan perempuan)
3. (a) ingin sekali; berharap sekali; rindu
4. (a) (kl) susah hati (khawatir); risau
>>> kata = KBBI('taksir')
>>> print(kata)
tak.sir (1)
(n) kira-kira; hitungan (kasar)
tak.sir (2)
1. (a) (Ar) tidak mengindahkan; lalai; alpa
2. (n) (Ar) kelalaian; kealpaan
>>> import json
>>> print(json.dumps(kata.serialisasi(), indent=2))
{
"pranala": "https://kbbi.kemdikbud.go.id/entri/taksir",
"entri": [
{
"nama": "tak.sir",
"nomor": "1",
"kata_dasar": [],
"pelafalan": "",
"bentuk_tidak_baku": [],
"varian": [],
"makna": [
{
"kelas": [
{
"kode": "n",
"nama": "Nomina",
"deskripsi": "kata benda"
}
],
"submakna": [
"kira-kira",
"hitungan (kasar)"
],
"info": "",
"contoh": []
}
]
},
{
"nama": "tak.sir",
"nomor": "2",
"kata_dasar": [],
"pelafalan": "",
"bentuk_tidak_baku": [],
"varian": [],
"makna": [
{
"kelas": [
{
"kode": "a",
"nama": "Adjektiva",
"deskripsi": "kata yang menjelaskan nomina atau pronomina"
},
{
"kode": "Ar",
"nama": "Arab",
"deskripsi": "-"
}
],
"submakna": [
"tidak mengindahkan",
"lalai",
"alpa"
],
"info": "",
"contoh": []
},
{
"kelas": [
{
"kode": "n",
"nama": "Nomina",
"deskripsi": "kata benda"
},
{
"kode": "Ar",
"nama": "Arab",
"deskripsi": "-"
}
],
"submakna": [
"kelalaian",
"kealpaan"
],
"info": "",
"contoh": []
}
]
}
]
}
为了利用特定用户功能,首先创建AutentikasiKBBI
对象,然后在使用KBBI
对象时使用该对象。
>>> auth = AutentikasiKBBI("posel@saya.tld", "password_saya")
>>> roh = KBBI("roh", auth)
>>> print(roh)
roh
bentuk tidak baku: ruh
Etimologi: [Arab] (n) (sg) (f/m) رُوْحٌ rūh: tiupan; sesuatu yang membuat manusia dapat hidup
1. (n) sesuatu (unsur) yang ada dalam jasad yang diciptakan Tuhan sebagai penyebab adanya hidup (kehidupan); nyawa: jika -- sudah berpisah dari badan, berakhirlah kehidupan seseorang
2. (n) makhluk hidup yang tidak berjasad, tetapi berpikiran dan berperasaan (malaikat, jin, setan, dan sebagainya)
3. (n) (ki) semangat; spirit: kedamaian bagi seluruh warga sesuai dengan -- Islam
Gabungan Kata
roh Kudus; roh suci
当前支持的特定用户功能包括词源、相关条目(派生词、合成词、成语和习语)、当未找到条目时的相关条目建议,以及更大的搜索范围。
要获取不带相关条目功能的 str
表示,请使用 __str__(terkait=False)
。
>>> print(roh.__str__(contoh=False, terkait=False))
roh
bentuk tidak baku: ruh
Etimologi: [Arab] (n) (sg) (f/m) رُوْحٌ rūh: tiupan; sesuatu yang membuat manusia dapat hidup
1. (n) sesuatu (unsur) yang ada dalam jasad yang diciptakan Tuhan sebagai penyebab adanya hidup (kehidupan); nyawa
2. (n) makhluk hidup yang tidak berjasad, tetapi berpikiran dan berperasaan (malaikat, jin, setan, dan sebagainya)
3. (n) (ki) semangat; spirit
如果条目无法找到,要利用类似条目的建议功能,请使用 TidakDitemukan
对象中存在的 KBBI
对象,通过 objek
属性访问。
>>> from kbbi import TidakDitemukan
>>> try:
... huk = KBBI("huk", auth)
... except TidakDitemukan as e:
... huk = e.objek
...
>>> print(huk)
Berikut beberapa saran entri lain yang mirip.
auk, buk (1), buk (2), cuk, duk, hak (1), hak (2), hak (3), hak (4), huh, hun, hus, Hut, kuk (1), kuk (2), luk, muk, suk, tuk (1), yuk (1), yuk (2), DUK, HUT, KUK, UK, hub (2), Hud, tuk (2), guk
>>> print(huk.serialisasi())
{'pranala': 'https://kbbi.kemdikbud.go.id/entri/huk', 'entri': [], 'saran_entri': ['auk', 'buk (1)', 'buk (2)', 'cuk', 'duk', 'hak (1)', 'hak (2)', 'hak (3)', 'hak (4)', 'huh', 'hun', 'hus', 'Hut', 'kuk (1)', 'kuk (2)', 'luk', 'muk', 'suk', 'tuk (1)', 'yuk (1)', 'yuk (2)', 'DUK', 'HUT', 'KUK', 'UK', 'hub (2)', 'Hud', 'tuk (2)', 'guk']}
>>> print(huk.saran_entri)
['auk', 'buk (1)', 'buk (2)', 'cuk', 'duk', 'hak (1)', 'hak (2)', 'hak (3)', 'hak (4)', 'huh', 'hun', 'hus', 'Hut', 'kuk (1)', 'kuk (2)', 'luk', 'muk', 'suk', 'tuk (1)', 'yuk (1)', 'yuk (2)', 'DUK', 'HUT', 'KUK', 'UK', 'hub (2)', 'Hud', 'tuk (2)', 'guk']
要禁用特定用户功能(除更大的搜索范围外),请在调用 __str__
或 serialisasi
时添加参数 fitur_pengguna=False
。
如果想要保存认证的 cookie,请调用 AutentikasiKBBI
对象的 method simpan_kuki()
。
>>> auth.simpan_kuki()
接下来,可以不使用邮箱地址和密码创建 AutentikasiKBBI
对象。认证通过利用已保存的 cookie 进行。
>>> auth_baru = AutentikasiKBBI()
可以通过在创建 AutentikasiKBBI
对象时使用 lokasi_kuki
参数来设置 cookie 的存储/读取位置。
>>> auth = AutentikasiKBBI("posel@saya.tld", "sandi_saya", lokasi_kuki="~/kuki_kbbi.json")
>>> auth_baru = AutentikasiKBBI(lokasi_kuki="~/kuki_kbbi.json")
默认情况下,位置是
- Unix:
~/.local/share/kbbi/kuki.json
- Windows:
%localappdata%\laymonage\kbbi\kuki.json
- macOS:
~/Library/Application Support/kbbi/kuki.json
通过 CLI
$ kbbi cinta
用空格分隔的单词/短语搜索必须用引号括起来。
$ kbbi "tanggung jawab"
如果不希望显示示例,请使用 --tanpa-contoh
或 -c
。
$ kbbi "tanggung jawab" --tanpa-contoh
要获取 JSON 格式的结果,请使用 --json
或 -j
。
$ kbbi "tanggung jawab" --json
要设置 JSON 序列化的缩进,请使用 --indentasi N
或 -i N
。
$ kbbi "tanggung jawab" --json --indentasi 2
要利用特定用户功能,请先通过 kbbi-autentikasi
进行认证。
$ kbbi-autentikasi $KBBI_POSEL $KBBI_SANDI
接下来的 kbbi
使用将自动使用认证生成的 cookie。
要禁用相关条目功能,请使用 --tanpa-terkait
或 -t
。
$ kbbi alam --tanpa-terkait
要禁用所有特定用户功能(除更大的搜索范围外,且不删除 cookie),请使用 --nonpengguna
或 -n
。
$ kbbi alam --nonpengguna
要删除 cookie,请使用选项 --bersihkan
或 -c
。
$ kbbi-autentikasi --bersihkan
使用选项 --lokasi-kuki
或 -l
来指定要保存/读取的 cookie 位置。
$ kbbi-autentikasi $KBBI_POSEL $KBBI_SANDI --lokasi-kuki kukiku.json
$ kbbi alam --lokasi-kuki kukiku.json
备注
kbbi
也可以通过python kbbi.py
调用。
kbbi-autentikasi
也可以通过python -c "import kbbi; kbbi.autentikasi()"
调用。
贡献
请参阅 CONTRIBUTING.md。
许可证
本项目以 MIT 许可证分发。
免责声明
本项目是一个基于对印尼语和 Python 编程语言热爱的私人项目。本项目旨在使访问 KBBI 在线资源变得更加容易,而无需使用网络浏览器。本项目无意侵犯 KBBI 在线版权。本项目及其开发者与 Badan Bahasa Kemdikbud 或 Python 软件基金会 没有联系。开发者不对本项目可能出现的任何滥用行为承担责任。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。
源代码发行版
构建分发版本
kbbi-0.4.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b41971f17826e93ec338fb0cbfa8e4859aca6946a8c707a5cab517c81786e8bc |
|
MD5 | 8ec064ea40296256fd2977947f4b512f |
|
BLAKE2b-256 | f102c0450a11b5d3866d96f9dab72e1ef7b625cf6841f22dc191c3fb8359e7be |
kbbi-0.4.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 73ff41811f10b358a448e71142eb039da7e8f20556f04d943c6c6f8b31b935ce |
|
MD5 | 6f953fb481c89acf5b4b839a680f8351 |
|
BLAKE2b-256 | 861ce2bcbd89ebb9dc1d33ce07e5b284d86c8c2150497900f1e511f05f5bd9b9 |