Skip to main content

一个使用pyppeteer进行渲染的请求库

Project description

一个使用pyppeteer对指定的请求url进行渲染的库


安装

pip install smawe-pyppeteer

快速开始

from smawe_pyppeteer import get, run, goto, logger

if __name__ == '__main__':
    # 写法一
    from pathlib import Path

    async def main():
        script = "document.cookie"
        r = await get(
            "http://www.fangdi.com.cn/index.html", auto_close=True, delay=5, pretend=True, headless=True,
            user_data_dir=Path("./test").resolve(),
            args=[], script=script, callable=handle,
            enabled_interception=True, enabled_maximize=False, cookies={"name": "k1", "value": "v1"}
        )
        print(r.text)
        print(r.request)
        print(r.status)
        print(r.script_result)
        print(r.cookies)

    async def handle(request):
        print(request.url)
        await request.continue_()

    run(main())

    logger.debug("=" * 50)

    # 写法二
    # 等价于r = run(get(*args, **kwargs))
    r = goto("http://www.fangdi.com.cn/index.html", pretend=True, delay=2)
    print(r.text)

API参考

  • async def smawe_pyppeteer.get( url, delay=None, wait_for=None, page_width=None, page_height=None, enabled_interception=None, script=None, callable=None, cookies=None,**kwargs ):
      使用pyppeteer对指定url进行渲染
  • param url: url
  • param wait_for: css选择器或者xpath, 等待指定的元素出现在页面上
  • param delay: 打开指定url后要等待的秒数, 默认为None不进行等待(同时指定了delay和wait_for,则先delay,然后再wait_for)
  • param page_width: 页面宽度
  • param page_height: 页面高度
  • param enabled_interception: 是否启用请求拦截
  • param callable: 启动了请求拦截后要调用的协程函数, 它接受单个request参数, 未提供则使用默认实现.
  • param script: js表达式/js函数, 脚本在最后才执行, 即page关闭前执行. 结果可通过PyppeteerResponse.script_result属性获取.
  • param cookies: 一个字典或者包含字典的可迭代对象, 在当前打开的page中设置cookie(在访问页面之前设置), e.g. {"name": "n1", "value": "v1"}
  • param kwargs(包含以下关键字参数):
    • headless(bool): 是否启动无头模式, 默认是True.(启用了此参数(参数被设置为True时), auto_close被强制设为True)
    • path(str): 要运行的 Chromium 或 Chrome 可执行文件的路径.
    • auto_close(bool): 脚本完成后自动关闭浏览器进程. 默认为 True.
    • window_width(str): 浏览器窗口宽度, 以像素为单位.注意window_width和window_height必须同时设置, 否则会不生效
    • window_height(str): 浏览器窗口高度, 以像素为单位.注意window_width和window_height必须同时设置, 否则会不生效
    • args(list[str]): 传递给浏览器进程的附加参数.
    • enabled_maximize(bool): 是否启用窗口最大化, 默认为True, 如果同时指定了注意window_width和window_height, 此参数不会生效
  • return: PyppeteerResponse
  • smawe_pyppeteer.run(f: Coroutine)
      运行future对象(包括协程对象), 返回future的结果

  • smawe_pyppeteer.goto(*args, **kwargs)
    参数同smawe_pyppeteer.get, 等同于调用run(get(*args, **kwargs)), 返回一个PyppeteerResponse.

  • smawe.logger
    logging.Logger对象, 调用logger.debug("message""), 输出格式如下
    2023-11-15 22:51:12,342 | DEBUG | message


有问题请提交issue

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smawe_pyppeteer-0.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smawe_pyppeteer-0.1.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file smawe_pyppeteer-0.1.0.tar.gz.

File metadata

  • Download URL: smawe_pyppeteer-0.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.7

File hashes

Hashes for smawe_pyppeteer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 84a851ee23398f9e9e5f2e8ff9a4fa0422a6f4166f589b402a695f2346b6f7ac
MD5 eea32862bf97481b8e74dc4fed730758
BLAKE2b-256 e3c2209a1b41b7c54159793fb50752669ce3ef7dcc0bf7a1cccc0862595244e7

See more details on using hashes here.

File details

Details for the file smawe_pyppeteer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for smawe_pyppeteer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e9095d7e9b6d0183ade86637880b5cdf44e7aced356f959cd5b2775cc71c530
MD5 993da926738dd9f7cc38ff863e79a277
BLAKE2b-256 06e71d047f6bb0751b4ddfb7d3c2c0bc3924f9ec778869e038d77bd7e06dc124

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page