Skip to main content

No project description provided

Project description

# aiochrome

[![Build Status](https://travis-ci.org/fate0/aiochrome.svg?branch=master)](https://travis-ci.org/fate0/aiochrome)
[![Codecov](https://img.shields.io/codecov/c/github/fate0/aiochrome.svg)](https://codecov.io/gh/fate0/aiochrome)
[![Updates](https://pyup.io/repos/github/fate0/aiochrome/shield.svg)](https://pyup.io/repos/github/fate0/aiochrome/)
[![PyPI](https://img.shields.io/pypi/v/aiochrome.svg)](https://pypi.python.org/pypi/aiochrome)
[![PyPI](https://img.shields.io/pypi/pyversions/aiochrome.svg)](https://github.com/fate0/aiochrome)

A Python Package for the Google Chrome Dev Protocol, [more document](https://fate0.github.io/aiochrome/)

## Table of Contents

* [Installation](#installation)
* [Setup Chrome](#setup-chrome)
* [Getting Started](#getting-started)
* [Tab management](#tab-management)
* [Debug](#debug)
* [Examples](#examples)
* [Ref](#ref)


## Installation

To install aiochrome, simply:

```
$ pip install -U aiochrome
```

or from GitHub:

```
$ pip install -U git+https://github.com/fate0/aiochrome.git
```

or from source:

```
$ python setup.py install
```

## Setup Chrome

simply:

```
$ google-chrome --remote-debugging-port=9222
```

or headless mode (chrome version >= 59):

```
$ google-chrome --headless --disable-gpu --remote-debugging-port=9222
```

or use docker:

```
$ docker pull fate0/headless-chrome
$ docker run -it --rm --cap-add=SYS_ADMIN -p9222:9222 fate0/headless-chrome
```

## Getting Started

``` python
import asyncio
import aiochrome


async def main():
# create a browser instance
browser = aiochrome.Browser(url="http://127.0.0.1:9222")

# create a tab
tab = await browser.new_tab()

# register callback if you want
async def request_will_be_sent(**kwargs):
print("loading: %s" % kwargs.get('request').get('url'))

tab.Network.requestWillBeSent = request_will_be_sent

# start the tab
await tab.start()

# call method
await tab.Network.enable()
# call method with timeout
await tab.Page.navigate(url="https://github.com/fate0/aiochrome", _timeout=5)

# wait for loading
await tab.wait(5)

# stop the tab (stop handle events and stop recv message from chrome)
await tab.stop()

# close tab
await browser.close_tab(tab)


loop = asyncio.get_event_loop()
try:
loop.run_until_complete(main())
finally:
loop.close()
```

or (alternate syntax)

``` python
import asyncio
import aiochrome


async def main():
browser = aiochrome.Browser(url="http://127.0.0.1:9222")
tab = await browser.new_tab()

async def request_will_be_sent(**kwargs):
print("loading: %s" % kwargs.get('request').get('url'))

tab.set_listener("Network.requestWillBeSent", request_will_be_sent)

await tab.start()
await tab.call_method("Network.enable")
await tab.call_method("Page.navigate", url="https://github.com/fate0/aiochrome", _timeout=5)

await tab.wait(5)
await tab.stop()

await browser.close_tab(tab)


loop = asyncio.get_event_loop()
try:
loop.run_until_complete(main())
finally:
loop.close()

```

more methods or events could be found in
[Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/tot/)


## Debug

set DEBUG env variable:

![aiochrome_with_debug_env](https://raw.githubusercontent.com/fate0/aiochrome/master/docs/images/aiochrome_with_debug_env.png)


## Tab management

run `aiochrome -h` for more info

example:

![aiochrome_tab_management](https://raw.githubusercontent.com/fate0/aiochrome/master/docs/images/aiochrome_tab_management.png)


## Examples

please see the [examples](http://github.com/fate0/aiochrome/blob/master/examples) directory for more examples


## Ref

* [chrome-remote-interface](https://github.com/cyrus-and/chrome-remote-interface/)
* [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/tot/)

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

aiochrome-0.0.3.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

aiochrome-0.0.3-py2.py3-none-any.whl (12.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file aiochrome-0.0.3.tar.gz.

File metadata

  • Download URL: aiochrome-0.0.3.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aiochrome-0.0.3.tar.gz
Algorithm Hash digest
SHA256 3b26d9a57956455119eea78cd48a10f43667787a5622280b553762fd7b767703
MD5 8db58cd8a47c2958171a6dccbb369ebf
BLAKE2b-256 a6b1f2b8e4eb68f3829b221f6fc6a5d5ce4e684746ab1bc4e48a9c8ce7139c33

See more details on using hashes here.

File details

Details for the file aiochrome-0.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for aiochrome-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7a5af71f3957fbc97352f77b91215fdd5b09753d5b941243e1a2a609b451ab69
MD5 3e839ea1f6bd50345c517a381bdc5032
BLAKE2b-256 6d4d71e4c45cafba544fc1104c52a6cb924037875e5816dd592abced6c9cff07

See more details on using hashes here.

Supported by

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