
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
n8n-nodes-puppeteer-extended
Advanced tools
n8n node based on n8n-nodes-puppeteer for requesting webpages using Puppeteer, a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol.
This version brings features allowing more complex interactions with web pages:
For users on n8n v0.187+, your instance owner can install this node from Community Nodes.
n8n-nodes-puppeteer-extended
in Enter npm package name.After installing the node, you can use it like any other node. n8n displays the node in search results in the Nodes panel.
To get started install the package in your n8n root directory:
npm install n8n-nodes-puppeteer-extended
For Docker-based deployments, you'll need to make sure puppeteer is installed first. Then, add the following line before the font installation command in your n8n Dockerfile:
RUN cd /usr/local/lib/node_modules/n8n && npm install n8n-nodes-puppeteer-extended
Check out this gist for a working example with docker-compose.
Note: If you've having issues running puppeteer, please check their Troubleshooting guide before opening an issue here.
Emulate Device: Allows you to specify a device to emulate when requesting the page.
Extra Headers: Allows you add additional headers when requesting the page.
Launch Arguments: Allows you to specify additional command line arguments passed to the browser instance.
Viewport: Allows you to specify a window size in pixels (Width and Height)
Timeout: Allows you to specify tge maximum navigation time in milliseconds. You can pass 0 to disable the timeout entirely.
Wait Until: Allows you to change how Puppeteer considers navigation completed.
load
: The load event is fired.networkidle0
: No more than 0 connections for at least 500 ms.networkidle2
: No more than 2 connections for at least 500 ms.Time to Wait: Allows you specify a time (ms) for Puppeteer to wait before any interactions and content output.
Wait for Selector: Allows you specify Puppeteer to wait for a selector to appear in page before any interactions and content output.
Page Caching: Allows you to toggle whether pages should be cached when requesting.
Headless mode: Allows you to change whether to run browser runs in headless mode or not.
Stealth mode: When enabled, applies various techniques to make detection of headless Puppeteer harder. Powered by puppeteer-extra-plugin-stealth.
Proxy Server: Allows Puppeteer to use a custom proxy configuration. You can specify a custom proxy configuration in three ways: By providing a semi-colon-separated mapping of list scheme to url/port pairs. For example, you can specify:
http=foopy:80;ftp=foopy2
to use HTTP proxy "foopy:80" for http URLs and HTTP proxy "foopy2:80" for ftp URLs.
By providing a single uri with optional port to use for all URLs. For example:
foopy:8080
will use the proxy at foopy:8080 for all traffic.
By using the special "direct://" value.
direct://" will cause all connections to not use a proxy.
Inject HTML: Allows you to append HTML to the body.
Inject CSS: Allows you to append raw CSS to the head.
Inject JS: Allows you to append raw JS to the head.
load
: The load event is fired.networkidle0
: No more than 0 connections for at least 500 ms.networkidle2
: No more than 2 connections for at least 500 ms.Page content: Returns raw HTML (string) or JSON depending on the options selected and the context.
Property name: Name of the property returned for this output.
CSS selector: If empty it will returns the whole page (document), if not the specified element.
Select All: Instead of grabbing the first element matching the CSS selector, all matching elements will be returned.
innerHTML: In case of CSS selector (and HTML to JSON set to false), it will returns the raw innerHTML instead of the outerHTML.
HTML to JSON: Try to convert HTML nodes to JSON with the following logic:
<a href="/contact" class="mr-2 text-sm">Contact</a>
"a": {
"@href": "/contact",
"@class": [
"mr-2",
"text-sm"
],
"#text": "Contact"
}
<div>
<div class="bg-red-500">
<p>Hello</p>
<p class="text-xl">Wo<b>r</b>ld!</p>
</div>
</div>
"div": {
"div": {
"@class": "bg-red-500",
"p": [
"Hello",
{
"@class": "text-xl",
"#text": [
"Wo",
"ld!"
],
"b": "r"
}
]
}
}
No attributes: Ignore HTML attributes while converting to JSON.
Screenshot: Returns binary.
PDF: Returns binary.
date
: Formatted print datetitle
: Document titleurl
: Document locationpageNumber
Current page numbertotalPages
Total pages in the documentdate
: Formatted print datetitle
: Document titleurl
: Document locationpageNumber
Current page numbertotalPages
Total pages in the documentMIT License
Copyright (c) 2022 Nicholas Penree nick@penree.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Released (2022-10-25 0.1.0)
/!\ Breaking change with the previous version - Futur versions will be more stable
This version is a partial rewrite of the node, it brings a new architecture (inspired by my community node Discord) in which you can keep a Puppeteer session between your nodes during the same workflow execution. So I removed the "steps" paradigm because it is no longer needed.
An API access to n8n is required to check when the workflow execution stops in order to stop Puppeteer too.
FAQs
n8n node for requesting webpages using Puppeteer
The npm package n8n-nodes-puppeteer-extended receives a total of 228 weekly downloads. As such, n8n-nodes-puppeteer-extended popularity was classified as not popular.
We found that n8n-nodes-puppeteer-extended demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.