A MuseScore PDF scraper.
Project description
MuseScore Scraper
A MuseScore PDF scraper that serves as both a CLI and Python module. For non-subscription paying users.
Set-up
Run pip install musescore-scraper
in your terminal.
PyPI page for more details: https://pypi.org/project/musescore-scraper/
Usage
If as CLI
Execute musescraper <urls>
with as many MuseScore score URLs as desired.
If as Python module
from musescore_scraper import MuseScraper
with MuseScraper() as ms:
ms.to_pdf( <url> )
Custom Output Destination
If as CLI
Execute musescraper <urls> -o <output destinations>
If as Python module
from musescore_scraper import MuseScraper
with MuseScraper() as ms:
ms.to_pdf( <url>, output= <output destination> )
Debugging
If as CLI
Execute musescraper <urls> -d [<log file destination>]
Note that if a log file destination isn't provided, logs will be sent to stderr stream.
If as Python module
from musescore_scraper import MuseScraper
with MuseScraper(debug_log= <log file destination> ) as ms:
ms.to_pdf( <url> )
Note that if a empty string is provided instead, logs will be sent to stderr stream.
Asynchronous Python class
Useful if more than one score shall be downloaded.
from musescore_scraper import AsyncMuseScraper
from typing import Optional
import asyncio
from functools import partial
urls: list[str] = [ <urls> ]
outputs: list[Optional[Path]] = [None] * len(args.urls)
def set_output(i: int, task: asyncio.Task) -> None:
outputs[i] = task.result()
async def run():
tasks: list[asyncio.Task] = []
async with AsyncMuseScraper() as ms:
for i in range(len(urls)):
task: asyncio.Task = asyncio.create_task(ms.to_pdf(urls[i]))
task.add_done_callback(partial(set_output, i))
tasks.append(task)
result = await asyncio.gather(*tasks)
return result
asyncio.get_event_loop().run_until_complete(run())
Documentation
Available at https://musescore-scraper.readthedocs.io/en/stable/musescore_scraper.html#module-musescore_scraper.MuseScraper
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for musescore_scraper-2.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4c0fa9f70acba28310c8b778c9c1b3dc48bba3e21168d00fb66c6a4d4ce11f2 |
|
MD5 | 3b711d7a00524eec0dc87f04b2760d41 |
|
BLAKE2b-256 | be2413b9d0779aed6ef3137ea4aa846acb0aa1ade6d7e3a65a842bb0f2aef2c8 |