{ "info": { "author": "Hiroyuki Takagi", "author_email": "miyako.dev@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "\nPyppeteer\n=========\n\n\n.. image:: https://img.shields.io/pypi/v/pyppeteer.svg\n :target: https://pypi.python.org/pypi/pyppeteer\n :alt: PyPI\n\n\n.. image:: https://img.shields.io/pypi/pyversions/pyppeteer.svg\n :target: https://pypi.python.org/pypi/pyppeteer\n :alt: PyPI version\n\n\n.. image:: https://img.shields.io/badge/docs-latest-brightgreen.svg\n :target: https://miyakogi.github.io/pyppeteer\n :alt: Documentation\n\n\n.. image:: https://travis-ci.org/miyakogi/pyppeteer.svg\n :target: https://travis-ci.org/miyakogi/pyppeteer\n :alt: Travis status\n\n\n.. image:: https://ci.appveyor.com/api/projects/status/nb53tkg9po8v1blk?svg=true\n :target: https://ci.appveyor.com/project/miyakogi/pyppeteer\n :alt: AppVeyor status\n\n\n.. image:: https://codecov.io/gh/miyakogi/pyppeteer/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/miyakogi/pyppeteer\n :alt: codecov\n\n\nUnofficial Python port of\n`puppeteer `_ JavaScript (headless)\nchrome/chromium browser automation library.\n\n\n* Free software: MIT license (including the work distributed under the Apache 2.0 license)\n* Documentation: https://miyakogi.github.io/pyppeteer\n\nInstallation\n------------\n\nPyppeteer requires python 3.6+.\n(experimentally supports python 3.5)\n\nInstall by pip from PyPI:\n\n.. code-block::\n\n python3 -m pip install pyppeteer\n\nOr install latest version from `github `_\\ :\n\n.. code-block::\n\n python3 -m pip install -U git+https://github.com/miyakogi/pyppeteer.git@dev\n\nUsage\n-----\n\n..\n\n **Note**\\ : When you run pyppeteer first time, it downloads a recent version of Chromium (~100MB).\n If you don't prefer this behavior, run ``pyppeteer-install`` command before running scripts which uses pyppeteer.\n\n\n**Example**\\ : open web page and take a screenshot.\n\n.. code-block:: py\n\n import asyncio\n from pyppeteer import launch\n\n async def main():\n browser = await launch()\n page = await browser.newPage()\n await page.goto('http://example.com')\n await page.screenshot({'path': 'example.png'})\n await browser.close()\n\n asyncio.get_event_loop().run_until_complete(main())\n\n**Example**\\ : evaluate script on the page.\n\n.. code-block:: py\n\n import asyncio\n from pyppeteer import launch\n\n async def main():\n browser = await launch()\n page = await browser.newPage()\n await page.goto('http://example.com')\n await page.screenshot({'path': 'example.png'})\n\n dimensions = await page.evaluate('''() => {\n return {\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight,\n deviceScaleFactor: window.devicePixelRatio,\n }\n }''')\n\n print(dimensions)\n # >>> {'width': 800, 'height': 600, 'deviceScaleFactor': 1}\n await browser.close()\n\n asyncio.get_event_loop().run_until_complete(main())\n\nPyppeteer has almost same API as puppeteer.\nMore APIs are listed in the\n`document `_.\n\n`Puppeteer's document `_\nand `troubleshooting `_ are also useful for pyppeteer users.\n\nDifferences between puppeteer and pyppeteer\n-------------------------------------------\n\nPyppeteer is to be as similar as puppeteer, but some differences between python\nand JavaScript make it difficult.\n\nThese are differences between puppeteer and pyppeteer.\n\nKeyword arguments for options\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPuppeteer uses object (dictionary in python) for passing options to\nfunctions/methods. Pyppeteer accepts both dictionary and keyword arguments for\noptions.\n\nDictionary style option (similar to puppeteer):\n\n.. code-block:: python\n\n browser = await launch({'headless': True})\n\nKeyword argument style option (more pythonic, isn't it?):\n\n.. code-block:: python\n\n browser = await launch(headless=True)\n\nElement selector method name (\\ ``$`` -> ``querySelector``\\ )\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIn python, ``$`` is not usable for method name.\nSo pyppeteer uses\n``Page.querySelector()``\\ /\\ ``Page.querySelectorAll()``\\ /\\ ``Page.xpath()`` instead of\n``Page.$()``\\ /\\ ``Page.$$()``\\ /\\ ``Page.$x()``. Pyppeteer also has shorthands for these\nmethods, ``Page.J()``\\ , ``Page.JJ()``\\ , and ``Page.Jx()``.\n\nArguments of ``Page.evaluate()`` and ``Page.querySelectorEval()``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPuppeteer's version of ``evaluate()`` takes JavaScript raw function or string of\nJavaScript expression, but pyppeteer takes string of JavaScript. JavaScript\nstrings can be function or expression. Pyppeteer tries to automatically detect\nthe string is function or expression, but sometimes it fails. If expression\nstring is treated as function and error is raised, add ``force_expr=True`` option,\nwhich force pyppeteer to treat the string as expression.\n\nExample to get page content:\n\n.. code-block:: python\n\n content = await page.evaluate('document.body.textContent', force_expr=True)\n\nExample to get element's inner text:\n\n.. code-block:: python\n\n element = await page.querySelector('h1')\n title = await page.evaluate('(element) => element.textContent', element)\n\nFuture Plan\n-----------\n\n\n#. Catch up development of puppeteer\n\n * Not intend to add original API which puppeteer does not have\n\nCredits\n-------\n\nThis package was created with `Cookiecutter `_ and the `audreyr/cookiecutter-pypackage `_ project template.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/miyakogi/pyppeteer", "keywords": "pyppeteer", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "pyppeteer", "package_url": "https://pypi.org/project/pyppeteer/", "platform": "", "project_url": "https://pypi.org/project/pyppeteer/", "project_urls": { "Homepage": "https://github.com/miyakogi/pyppeteer" }, "release_url": "https://pypi.org/project/pyppeteer/0.0.25/", "requires_dist": null, "requires_python": "", "summary": "Headless chrome/chromium automation library (unofficial port of puppeteer)", "version": "0.0.25" }, "last_serial": 4314573, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "05f5adcaead87eea59f1a20191063664", "sha256": "596929fb7d052048679081d3dc2a998cf065e936a752c7ba2392445d6e0e9706" }, "downloads": -1, "filename": "pyppeteer-0.0.10.tar.gz", "has_sig": false, "md5_digest": "05f5adcaead87eea59f1a20191063664", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65455, "upload_time": "2018-02-27T05:24:36", "url": "https://files.pythonhosted.org/packages/40/b1/9d5f3bd82ccd22aa8415b34cfb94a4a9016d48b503f6e9396c3142449222/pyppeteer-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "4cd7478c37f7af86ca39f982b9ef2c8b", "sha256": "3a03394295aaaa2a06e672d16059add9ed6223dc9a4431beb77226c7bfd6215a" }, "downloads": -1, "filename": "pyppeteer-0.0.11.tar.gz", "has_sig": false, "md5_digest": "4cd7478c37f7af86ca39f982b9ef2c8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70499, "upload_time": "2018-03-01T04:30:07", "url": "https://files.pythonhosted.org/packages/76/f8/8416105fd940b6f1d105535861d5c73be107aa34ac6179989a162d3b28d1/pyppeteer-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "f025bd1a9512ca0944566cff77a5bac7", "sha256": "e56641af8fde734cd97a1a2df9701a560bb9421f03b5df190765a646114d9598" }, "downloads": -1, "filename": "pyppeteer-0.0.12.tar.gz", "has_sig": false, "md5_digest": "f025bd1a9512ca0944566cff77a5bac7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70537, "upload_time": "2018-03-01T04:50:46", "url": "https://files.pythonhosted.org/packages/e1/d6/28c8a4799fcb6ffd0afb8843fbc6f86f4380bc3bb1d700dc78549304ceaf/pyppeteer-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "0d95b4c93b1a9329b3a66596cf4ff4d0", "sha256": "64a2b894de3031dacb9a604c8ffd5e69bb397e3134b2c94fdc0a68ead4e485aa" }, "downloads": -1, "filename": "pyppeteer-0.0.13.tar.gz", "has_sig": false, "md5_digest": "0d95b4c93b1a9329b3a66596cf4ff4d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85159, "upload_time": "2018-03-10T05:50:23", "url": "https://files.pythonhosted.org/packages/88/72/b17ca1846f8ff5846bbda37b19da825c78b13ef2939a589174e2ea094723/pyppeteer-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "59a00f4654281b806d9652cdbfc04fd7", "sha256": "4e0409fb30bb717296432d5548f6a3407d78d9efcf7a17f308fdb42d43607d9f" }, "downloads": -1, "filename": "pyppeteer-0.0.14.tar.gz", "has_sig": false, "md5_digest": "59a00f4654281b806d9652cdbfc04fd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1156710, "upload_time": "2018-03-13T22:32:04", "url": "https://files.pythonhosted.org/packages/ea/b9/bd6462eafff2c2702c5734a408bd83b68aa99cf54240fd88e790d8d4159f/pyppeteer-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "73a62ee119b5c851db4404615fc9226a", "sha256": "6d2687ffaa6258e06798309af77c772f8be1dcf741f2e3d5b81d543cd85b9c4c" }, "downloads": -1, "filename": "pyppeteer-0.0.15.tar.gz", "has_sig": false, "md5_digest": "73a62ee119b5c851db4404615fc9226a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1145105, "upload_time": "2018-03-22T00:11:54", "url": "https://files.pythonhosted.org/packages/6d/b2/43a3d14f71813bb71dae4f2cd850542803bd0b2fd4ad478482ea681f7f09/pyppeteer-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "63bb143ffda3e38e503b28d3a743d654", "sha256": "caedc32a9067df9f22370deb89d6167b9d63ae97adcff0c9cdd9c4d3c2f8b09e" }, "downloads": -1, "filename": "pyppeteer-0.0.16.tar.gz", "has_sig": false, "md5_digest": "63bb143ffda3e38e503b28d3a743d654", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1145675, "upload_time": "2018-03-23T00:43:15", "url": "https://files.pythonhosted.org/packages/86/d3/64d125ebec2e81b15a3867afc6cdc1fb66a94f8eb3a34339a86312d756aa/pyppeteer-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "1aeed15cfba06f1b324f28faa3140f38", "sha256": "5366e416f2d9f557e60ee5a75bea112c5d7b75805db35d7140a2cbd2c8a6a55b" }, "downloads": -1, "filename": "pyppeteer-0.0.17.tar.gz", "has_sig": false, "md5_digest": "1aeed15cfba06f1b324f28faa3140f38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1157100, "upload_time": "2018-04-02T10:55:57", "url": "https://files.pythonhosted.org/packages/46/0d/a136a3c2d04574051673582967348a60a9532547eca45e108c0f42313d1f/pyppeteer-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "322f2e24fa5052899ed2e03eea6d1ccf", "sha256": "9393788739b944cbe44a861582b3883edfd39c93cfacd28db44b62fffa28f1c6" }, "downloads": -1, "filename": "pyppeteer-0.0.18.tar.gz", "has_sig": false, "md5_digest": "322f2e24fa5052899ed2e03eea6d1ccf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1161676, "upload_time": "2018-07-04T08:14:48", "url": "https://files.pythonhosted.org/packages/7d/c4/9528bf263199fe0879a4f64a52bc175112a3b13462ce34e2f416c211f84b/pyppeteer-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "260933ae58067a590783337f590bc6d6", "sha256": "c35cff5c3b4d3c391c10a85b1a56b9f39daf18c795b0d8f6e0b7eaeac1ad5be3" }, "downloads": -1, "filename": "pyppeteer-0.0.19.tar.gz", "has_sig": false, "md5_digest": "260933ae58067a590783337f590bc6d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1163955, "upload_time": "2018-07-05T07:46:35", "url": "https://files.pythonhosted.org/packages/d2/92/b239534593115aba5dea92c87ceafbc235bd064c64ebfa98581166f9fb5a/pyppeteer-0.0.19.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "29deabd609c2434ef18d18db91f7016f", "sha256": "acbf83a50648c0d7b5de9c050a313f70f188aac93ae845d0926396f8c4e51363" }, "downloads": -1, "filename": "pyppeteer-0.0.20.tar.gz", "has_sig": false, "md5_digest": "29deabd609c2434ef18d18db91f7016f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1167592, "upload_time": "2018-08-11T04:15:21", "url": "https://files.pythonhosted.org/packages/0c/1e/e4e3cc2ddc30993efd9f9e442accd3c864cdb2e45b13ec1d4152a465e619/pyppeteer-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "d1c6be822e503560056fb5e7060b04d3", "sha256": "3cdad9c51eb1c5b76cb2324a19bc9cdb011955834c752c520c56417f4c6aed0e" }, "downloads": -1, "filename": "pyppeteer-0.0.21.tar.gz", "has_sig": false, "md5_digest": "d1c6be822e503560056fb5e7060b04d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1170365, "upload_time": "2018-08-21T04:10:53", "url": "https://files.pythonhosted.org/packages/a3/36/3b596b7859c5499f7fb356cc6b0208b3f00143774b710d30ac1268311faf/pyppeteer-0.0.21.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "3df1045f7da88a8edf80595233a0686a", "sha256": "1f8857f9693ca19f268c171f4df8135337d4fac986d69dfe5ad30d36491c3cb4" }, "downloads": -1, "filename": "pyppeteer-0.0.23.tar.gz", "has_sig": false, "md5_digest": "3df1045f7da88a8edf80595233a0686a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1179627, "upload_time": "2018-09-10T04:26:45", "url": "https://files.pythonhosted.org/packages/41/75/dcc2f89f1148ad4caf379b5d2977ed8307564c28568d197e4be3ea2b6c51/pyppeteer-0.0.23.tar.gz" } ], "0.0.24": [ { "comment_text": "", "digests": { "md5": "5c60d0fd1e39dbc8438f946685ea833a", "sha256": "42a83b719cd93737efe7cbe86b55197a20a32b849a5feb723fc11cbb4c842e55" }, "downloads": -1, "filename": "pyppeteer-0.0.24.tar.gz", "has_sig": false, "md5_digest": "5c60d0fd1e39dbc8438f946685ea833a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1188344, "upload_time": "2018-09-12T06:26:15", "url": "https://files.pythonhosted.org/packages/2b/e1/5ff09ceb58a34200fb4c9b3d770c42f8231c5b253a1d34f2ca08098d7258/pyppeteer-0.0.24.tar.gz" } ], "0.0.25": [ { "comment_text": "", "digests": { "md5": "39bd81e1d5359d856cdbe15cffca4fb7", "sha256": "51fe769b722a1718043b74d12c20420f29e0dd9eeea2b66652b7f93a9ad465dd" }, "downloads": -1, "filename": "pyppeteer-0.0.25.tar.gz", "has_sig": false, "md5_digest": "39bd81e1d5359d856cdbe15cffca4fb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1188361, "upload_time": "2018-09-26T23:59:49", "url": "https://files.pythonhosted.org/packages/b0/16/a5e8d617994cac605f972523bb25f12e3ff9c30baee29b4a9c50467229d9/pyppeteer-0.0.25.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7f79bccd39acd85909822bfae4f45df7", "sha256": "4bba8e35a6199c6d448efc9c02f33623336ff5b93e54f70fdee588db9dd78146" }, "downloads": -1, "filename": "pyppeteer-0.0.4.tar.gz", "has_sig": false, "md5_digest": "7f79bccd39acd85909822bfae4f45df7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35397, "upload_time": "2017-08-30T14:24:29", "url": "https://files.pythonhosted.org/packages/25/f4/847c023e62d0a0c4f0fba9d904b0d4384726f845281c652bebe2db239196/pyppeteer-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "b55e8dd5f47a52f3ae732f2cdac4a002", "sha256": "a5cc973d322f9ac472bec158000cf03a1697a4cebb37db8dfb413fc45f37713f" }, "downloads": -1, "filename": "pyppeteer-0.0.5.tar.gz", "has_sig": false, "md5_digest": "b55e8dd5f47a52f3ae732f2cdac4a002", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36089, "upload_time": "2017-08-31T02:51:24", "url": "https://files.pythonhosted.org/packages/26/ea/a7fcb44542c8cbd34f447b30cec8ff59c3f1d1c1477215282be2c44c2c99/pyppeteer-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a4e234e8492e61308dfdd955a225903c", "sha256": "70c5c52b86e54ebd5d3da8894319780b3a0108f26b1eedcca3eaa094ff5f375f" }, "downloads": -1, "filename": "pyppeteer-0.0.6.tar.gz", "has_sig": false, "md5_digest": "a4e234e8492e61308dfdd955a225903c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50267, "upload_time": "2017-09-02T14:24:26", "url": "https://files.pythonhosted.org/packages/30/26/ffdf43a03bc0d61391d38f911e6d426a354d146cd57200a7b1b309d9ba9b/pyppeteer-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "73dfe2b0b9626447e0743bf12f1faae9", "sha256": "9085c38fdff84664820bac7826e42502ea376fda26837b6fd901304b2239b7bd" }, "downloads": -1, "filename": "pyppeteer-0.0.7.tar.gz", "has_sig": false, "md5_digest": "73dfe2b0b9626447e0743bf12f1faae9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52453, "upload_time": "2017-09-02T18:09:15", "url": "https://files.pythonhosted.org/packages/48/69/6a7ed70fa0a13bc4d789df5e4b7482d9437fc6272f8287525e3d22cedd65/pyppeteer-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "ca5013498e12e1e22e0917bfa9d820a0", "sha256": "a11338b9f2507e26a447bc86844ac777070905c1489446ad900ad24b3e0dec18" }, "downloads": -1, "filename": "pyppeteer-0.0.8.tar.gz", "has_sig": false, "md5_digest": "ca5013498e12e1e22e0917bfa9d820a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53211, "upload_time": "2017-09-03T10:13:17", "url": "https://files.pythonhosted.org/packages/a3/d3/e564b4e5578249e2515d92fbfd0a26573eda530c4a20180abc0a62751cbf/pyppeteer-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "153cd7ca0a3f933c4e561d55e603a87c", "sha256": "ffb2b00e1c03b605209f8c1780fea43fb445207503493eaf07ad8fc350b8ab1c" }, "downloads": -1, "filename": "pyppeteer-0.0.9.tar.gz", "has_sig": false, "md5_digest": "153cd7ca0a3f933c4e561d55e603a87c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53271, "upload_time": "2017-09-08T23:38:21", "url": "https://files.pythonhosted.org/packages/53/8b/2f4cbd9f8b5e22726816ab9cb40b2533ee9d797904e5d450a4c8470d88a4/pyppeteer-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "39bd81e1d5359d856cdbe15cffca4fb7", "sha256": "51fe769b722a1718043b74d12c20420f29e0dd9eeea2b66652b7f93a9ad465dd" }, "downloads": -1, "filename": "pyppeteer-0.0.25.tar.gz", "has_sig": false, "md5_digest": "39bd81e1d5359d856cdbe15cffca4fb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1188361, "upload_time": "2018-09-26T23:59:49", "url": "https://files.pythonhosted.org/packages/b0/16/a5e8d617994cac605f972523bb25f12e3ff9c30baee29b4a9c50467229d9/pyppeteer-0.0.25.tar.gz" } ] }