Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wurde/hesitate
Human-like delay between page interactions.
https://github.com/wurde/hesitate
Last synced: 5 days ago
JSON representation
Human-like delay between page interactions.
- Host: GitHub
- URL: https://github.com/wurde/hesitate
- Owner: wurde
- License: mit
- Created: 2018-02-03T16:08:59.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-08-01T19:37:46.000Z (over 6 years ago)
- Last Synced: 2024-04-26T13:20:52.961Z (7 months ago)
- Language: JavaScript
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# hesitate
Human-like delay between page interactions.
## Getting started
Add the package to your project using the npm ecosystem:
```bash
$ npm install hesitate --save
``````javascript
"use strict"/**
* Dependencies
*/const pussy = require('pussy')
const puppeteer = require("puppeteer")
const hesitate = require("hesitate")/**
* Initialize the bot.
*/const query_bot = new pussy.Bot('query')
/**
* Initialize Action
*/const query_action = new pussy.Action('query')
/**
* Define Action
*/// Start browser.
query_action.activities[0] = async (args) => {
args.browser = await puppeteer.launch({ headless: false, timeout: 10000 })
args.page = await args.browser.newPage()
await args.page.setViewport({ width: 960, height: 824 })
return args
}// Send query.
query_action.activities[1] = async (args) => {
await args.page.goto("https://www.google.com", { waitUntil: 'networkidle0' })
await hesitate(args.page) // hesitate a random number of ms between 300 and 1000.
await args.page.click('input[name="q"]')
await hesitate(args.page, { max: 2000, min: 1000 }) // hesitate 1000-2000 ms
await args.page.type('input[name="q"]', args.q, { delay: 20 })
await hesitate(args.page, { max: 4000, min: 2000 }) // hesitate 2000-4000 ms
await args.page.keyboard.press('Enter')
await hesitate(args.page, { max: 10000, min: 8000 }) // hesitate 8000-10000 ms
return args
}// Close the browser.
query_action.activities[2] = async (args) => {
await args.page.close()
await args.browser.close()
return args
}/**
* Teach bot
*/query_bot.learn(query_action)
/**
* Send query
*/query_bot.begin('query', { q: "MIT Technology Review" })
.catch((err) => {
throw Error(err)
})
```## Changelog
Get the project's history in [CHANGELOG.md](CHANGELOG.md).
## Maintainer
Andy Bettisworth https://andybettisworth.com
## License
This project is released under the [MIT License](LICENSE.txt).