Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kmaehashi/atwiki-python
@wiki Client for Python
https://github.com/kmaehashi/atwiki-python
python python3 scraper wiki
Last synced: 3 months ago
JSON representation
@wiki Client for Python
- Host: GitHub
- URL: https://github.com/kmaehashi/atwiki-python
- Owner: kmaehashi
- License: mit
- Created: 2016-08-09T15:04:21.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2024-09-04T00:55:16.000Z (4 months ago)
- Last Synced: 2024-10-05T00:47:21.969Z (3 months ago)
- Topics: python, python3, scraper, wiki
- Language: Python
- Size: 78.1 KB
- Stars: 7
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
|GitHubActions|_ |CodeCov|_ |PyPi|_
.. |GitHubActions| image:: https://github.com/kmaehashi/atwiki-python/actions/workflows/test.yml/badge.svg?branch=main
.. _GitHubActions: https://github.com/kmaehashi/atwiki-python/actions/workflows/test.yml?query=branch%3Amain.. |CodeCov| image:: https://codecov.io/gh/kmaehashi/atwiki-python/branch/main/graph/badge.svg
.. _CodeCov: https://codecov.io/gh/kmaehashi/atwiki-python.. |PyPI| image:: https://badge.fury.io/py/atwiki-python.svg
.. _PyPI: https://pypi.org/project/atwiki-pythonatwiki-python
=============``atwiki-python`` is a client library to access `@wiki `_ from Python.
This package also includes ``atwiki-dump`` command to dump source from @wiki wiki site.
Install
-------::
pip install atwiki-python
Requirements
------------* Python 2.7 / 3.7 / 3.8 / 3.9 / 3.10 / 3.11
Usage
-----``atwiki-dump`` Command
~~~~~~~~~~~~~~~~~~~~~~~Dump source and page name for each page in the wiki site.
::
atwiki-dump -o /tmp/dump_dir https://w.atwiki.jp/python-client/
Python API
~~~~~~~~~~Python API provides access to @wiki features.
.. code:: python
from atwiki import *
api = AtWikiAPI(AtWikiURI('https://w.atwiki.jp/python-client/'))
# Show list of tags.
for tag in api.get_tags():
print(tag)# Show list of pages.
for page in api.get_list():
print(page)# Show list of pages tagged with 'tag01'.
for page in api.get_list('tag01'):
print(page)# Show source of page ID 14.
print(api.get_source(14))# Show results of wiki search.
for result in api.search('test'):
print(result)Hints
-----* Always use an appropraite interval between requests, or your IP address may get banned.
Empirically, 10 seconds of sleep between API call is sufficient.
Each ``AtWikiAPI`` instance automatically injects a delay between requests.
* Your application must expect that entries returned from APIs may be duplicate/missing when pages/tags are added/removed during API call.
This is because listing requests are internally pagerized and it is costly to guarantee consistency.
* AtWiki's specification may change anytime.
If you are going to build an automated system, it is encouraged to run test suites included with the installation of this library (``python -m unittest discover atwiki``) everytime before running your application.License
-------MIT License