Skip to content

Commit

Permalink
0.34 - added host and port options to connect to existing debugabble …
Browse files Browse the repository at this point in the history
…browser (over network as well). updated docs
  • Loading branch information
ultrafunkamsterdam committed Jul 14, 2024
1 parent 948bc16 commit 0828159
Show file tree
Hide file tree
Showing 269 changed files with 189,213 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/_build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 289d95cc9169fcb0c76a899cfdf2c08c
tags: 645f666f9bcd5a90fca523b33c5a78b7
360 changes: 360 additions & 0 deletions docs/_build/html/_modules/index.html

Large diffs are not rendered by default.

1,097 changes: 1,097 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/accessibility.html

Large diffs are not rendered by default.

879 changes: 879 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/animation.html

Large diffs are not rendered by default.

2,388 changes: 2,388 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/audits.html

Large diffs are not rendered by default.

627 changes: 627 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/autofill.html

Large diffs are not rendered by default.

553 changes: 553 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/background_service.html

Large diffs are not rendered by default.

1,145 changes: 1,145 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/browser.html

Large diffs are not rendered by default.

652 changes: 652 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/cache_storage.html

Large diffs are not rendered by default.

497 changes: 497 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/cast.html

Large diffs are not rendered by default.

426 changes: 426 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/console.html

Large diffs are not rendered by default.

3,060 changes: 3,060 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/css.html

Large diffs are not rendered by default.

504 changes: 504 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/database.html

Large diffs are not rendered by default.

1,989 changes: 1,989 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/debugger.html

Large diffs are not rendered by default.

468 changes: 468 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/device_access.html

Large diffs are not rendered by default.

353 changes: 353 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/device_orientation.html

Large diffs are not rendered by default.

2,706 changes: 2,706 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/dom.html

Large diffs are not rendered by default.

669 changes: 669 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/dom_debugger.html

Large diffs are not rendered by default.

1,484 changes: 1,484 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/dom_snapshot.html

Large diffs are not rendered by default.

565 changes: 565 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/dom_storage.html

Large diffs are not rendered by default.

1,597 changes: 1,597 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/emulation.html

Large diffs are not rendered by default.

367 changes: 367 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/event_breakpoints.html

Large diffs are not rendered by default.

336 changes: 336 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/extensions.html

Large diffs are not rendered by default.

638 changes: 638 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/fed_cm.html

Large diffs are not rendered by default.

906 changes: 906 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/fetch.html

Large diffs are not rendered by default.

444 changes: 444 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/headless_experimental.html

Large diffs are not rendered by default.

770 changes: 770 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/heap_profiler.html

Large diffs are not rendered by default.

905 changes: 905 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/indexed_db.html

Large diffs are not rendered by default.

1,087 changes: 1,087 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/input_.html

Large diffs are not rendered by default.

388 changes: 388 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/inspector.html

Large diffs are not rendered by default.

420 changes: 420 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/io.html

Large diffs are not rendered by default.

881 changes: 881 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/layer_tree.html

Large diffs are not rendered by default.

541 changes: 541 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/log.html

Large diffs are not rendered by default.

643 changes: 643 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/media.html

Large diffs are not rendered by default.

617 changes: 617 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/memory.html

Large diffs are not rendered by default.

5,323 changes: 5,323 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/network.html

Large diffs are not rendered by default.

2,152 changes: 2,152 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/overlay.html

Large diffs are not rendered by default.

4,894 changes: 4,894 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/page.html

Large diffs are not rendered by default.

446 changes: 446 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/performance.html

Large diffs are not rendered by default.

545 changes: 545 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/performance_timeline.html

Large diffs are not rendered by default.

984 changes: 984 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/preload.html

Large diffs are not rendered by default.

814 changes: 814 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/profiler.html

Large diffs are not rendered by default.

593 changes: 593 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/pwa.html

Large diffs are not rendered by default.

2,308 changes: 2,308 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/runtime.html

Large diffs are not rendered by default.

359 changes: 359 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/schema.html

Large diffs are not rendered by default.

922 changes: 922 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/security.html

Large diffs are not rendered by default.

794 changes: 794 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/service_worker.html

Large diffs are not rendered by default.

2,702 changes: 2,702 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/storage.html

Large diffs are not rendered by default.

744 changes: 744 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/system_info.html

Large diffs are not rendered by default.

1,140 changes: 1,140 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/target.html

Large diffs are not rendered by default.

370 changes: 370 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/tethering.html

Large diffs are not rendered by default.

765 changes: 765 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/tracing.html

Large diffs are not rendered by default.

1,038 changes: 1,038 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/web_audio.html

Large diffs are not rendered by default.

950 changes: 950 additions & 0 deletions docs/_build/html/_modules/nodriver/cdp/web_authn.html

Large diffs are not rendered by default.

427 changes: 427 additions & 0 deletions docs/_build/html/_modules/nodriver/core/_contradict.html

Large diffs are not rendered by default.

1,155 changes: 1,155 additions & 0 deletions docs/_build/html/_modules/nodriver/core/browser.html

Large diffs are not rendered by default.

626 changes: 626 additions & 0 deletions docs/_build/html/_modules/nodriver/core/config.html

Large diffs are not rendered by default.

918 changes: 918 additions & 0 deletions docs/_build/html/_modules/nodriver/core/connection.html

Large diffs are not rendered by default.

1,548 changes: 1,548 additions & 0 deletions docs/_build/html/_modules/nodriver/core/element.html

Large diffs are not rendered by default.

1,754 changes: 1,754 additions & 0 deletions docs/_build/html/_modules/nodriver/core/tab.html

Large diffs are not rendered by default.

103 changes: 103 additions & 0 deletions docs/_build/html/_sources/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@


##################
NODRIVER
##################


**This package provides next level webscraping and browser automation
using a relatively simple interface.**

* **This is the official successor of the** `Undetected-Chromedriver <https://github.com/ultrafunkamsterdam/undetected-chromedriver/>`_ **python package.**
* **No more webdriver, no more selenium**

Direct communication provides even better resistance against web applicatinon firewalls (WAF's), while
performance gets a massive boost.
This module is, contrary to undetected-chromedriver, fully asynchronous.

What makes this package different from other known packages,
is the optimization to stay undetected for most anti-bot solutions.

Another focus point is usability and quick prototyping, so expect a lot to work `-as is-` ,
with most method parameters having `best practice` defaults.
Using 1 or 2 lines, this is up and running, providing best practice config
by default.

While usability and convenience is important. It's also easy
to fully customizable everything using the entire array of
`CDP <https://chromedevtools.github.io/devtools-protocol />`_ domains, methods and events available.


Some features
^^^^^^^^^^^^^^^^^^^^^^

* A blazing fast undetected chrome (-ish) automation library

* No chromedriver binary or Selenium dependency

* This equals bizarre performance increase and less detections!

* Up and running in 1 line of code*

* uses fresh profile on each run, cleans up on exit

* save and load cookies to file to not repeat tedious login steps

* smart element lookup, by selector or text, including iframe content.
this could also be used as wait condition for a element to appear, since it will retry
for the duration of <timeout> until found.
single element lookup by text using tab.find(), accepts a best_match flag, which will not
naively return the first match, but will match candidates by closest matching text length.

* descriptive __repr__ for elements, which represent the element as html

* utility function to convert a running undetected_chromedriver.Chrome instance
to a nodriver.Browser instance and contintue from there

* packed with helpers and utility methods for most used and important operations

..
* ```elem.text```
* ```elem.text_all```
* ```elem.parent.parent.parent.attrs```
* ```anchor_elem.href and anchor_elem['href']```
* ```anchor_elem.href = 'someotherthing'; await anchor_elem.save()```
* ```elem.children[-1].children[0].children[4].parent.parent```

* ```await html5video_element.record_video()```
* ```await html5video_element('pause')```
* ```await html5video_element.apply('''(el) => el.currentTime = 0''')```
* ```tab = await browser.get(url, new_tab=True)```
* ```tab_win = await browser.get(url, new_window=True)```
* ```first = await tab.find('search text')```
* ```best = await tab.find('search text', best_match=True)```
* ```all_results = await tab.find_all('search text')```
* ```first_submit_button = await tab.select(selector='button[type=submit]')```
* ```inputs_in_form = await tab.select_all('form input')```


Quick start
--------------
.. toctree::
nodriver/quickstart


Main objects
--------------
.. toctree::

nodriver/classes/browser
nodriver/classes/tab
nodriver/classes/element
nodriver/classes/others_and_helpers


CDP object
------------------

.. toctree::

nodriver/cdp


8 changes: 8 additions & 0 deletions docs/_build/html/_sources/nodriver/cdp.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
CDP object
====================

.. toctree::
:glob:
:maxdepth: 1

cdp/*
113 changes: 113 additions & 0 deletions docs/_build/html/_sources/nodriver/cdp/accessibility.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
Accessibility
=============

*This CDP domain is experimental.*

.. module:: nodriver.cdp.accessibility

* Types_
* Commands_
* Events_

Types
-----

Generally, you do not need to instantiate CDP types
yourself. Instead, the API creates objects for you as return
values from commands, and then you can use those objects as
arguments to other commands.

.. autoclass:: AXNodeId
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXValueType
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXValueSourceType
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXValueNativeSourceType
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXValueSource
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXRelatedNode
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXProperty
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXValue
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXPropertyName
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AXNode
:members:
:undoc-members:
:exclude-members: from_json, to_json

Commands
--------

Each command is a generator function. The return
type ``Generator[x, y, z]`` indicates that the generator
*yields* arguments of type ``x``, it must be resumed with
an argument of type ``y``, and it returns type ``z``. In
this library, types ``x`` and ``y`` are the same for all
commands, and ``z`` is the return type you should pay attention
to. For more information, see
:ref:`Getting Started: Commands <getting-started-commands>`.

.. autofunction:: disable

.. autofunction:: enable

.. autofunction:: get_ax_node_and_ancestors

.. autofunction:: get_child_ax_nodes

.. autofunction:: get_full_ax_tree

.. autofunction:: get_partial_ax_tree

.. autofunction:: get_root_ax_node

.. autofunction:: query_ax_tree

Events
------

Generally, you do not need to instantiate CDP events
yourself. Instead, the API creates events for you and then
you use the event's attributes.

.. autoclass:: LoadComplete
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: NodesUpdated
:members:
:undoc-members:
:exclude-members: from_json, to_json
102 changes: 102 additions & 0 deletions docs/_build/html/_sources/nodriver/cdp/animation.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
Animation
=========

*This CDP domain is experimental.*

.. module:: nodriver.cdp.animation

* Types_
* Commands_
* Events_

Types
-----

Generally, you do not need to instantiate CDP types
yourself. Instead, the API creates objects for you as return
values from commands, and then you can use those objects as
arguments to other commands.

.. autoclass:: Animation
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: ViewOrScrollTimeline
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AnimationEffect
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: KeyframesRule
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: KeyframeStyle
:members:
:undoc-members:
:exclude-members: from_json, to_json

Commands
--------

Each command is a generator function. The return
type ``Generator[x, y, z]`` indicates that the generator
*yields* arguments of type ``x``, it must be resumed with
an argument of type ``y``, and it returns type ``z``. In
this library, types ``x`` and ``y`` are the same for all
commands, and ``z`` is the return type you should pay attention
to. For more information, see
:ref:`Getting Started: Commands <getting-started-commands>`.

.. autofunction:: disable

.. autofunction:: enable

.. autofunction:: get_current_time

.. autofunction:: get_playback_rate

.. autofunction:: release_animations

.. autofunction:: resolve_animation

.. autofunction:: seek_animations

.. autofunction:: set_paused

.. autofunction:: set_playback_rate

.. autofunction:: set_timing

Events
------

Generally, you do not need to instantiate CDP events
yourself. Instead, the API creates events for you and then
you use the event's attributes.

.. autoclass:: AnimationCanceled
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AnimationCreated
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AnimationStarted
:members:
:undoc-members:
:exclude-members: from_json, to_json

.. autoclass:: AnimationUpdated
:members:
:undoc-members:
:exclude-members: from_json, to_json
Loading

0 comments on commit 0828159

Please sign in to comment.