mirror of
https://github.com/FlareSolverr/FlareSolverr.git
synced 2025-12-05 17:18:19 +01:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a74884d0c1 | ||
|
|
0e2452e40e | ||
|
|
ce52321b78 | ||
|
|
4e07ed0f6c |
@@ -4,9 +4,9 @@
|
|||||||
[](https://hub.docker.com/r/flaresolverr/flaresolverr/)
|
[](https://hub.docker.com/r/flaresolverr/flaresolverr/)
|
||||||
[](https://github.com/FlareSolverr/FlareSolverr/issues)
|
[](https://github.com/FlareSolverr/FlareSolverr/issues)
|
||||||
[](https://github.com/FlareSolverr/FlareSolverr/pulls)
|
[](https://github.com/FlareSolverr/FlareSolverr/pulls)
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X5NJLLX5GLTV6&source=url)
|
[](https://www.paypal.com/paypalme/diegoheras0xff)
|
||||||
[](https://en.cryptobadges.io/donate/13Hcv77AdnFWEUZ9qUpoPBttQsUT7q9TTh)
|
[](https://www.blockchain.com/btc/address/13Hcv77AdnFWEUZ9qUpoPBttQsUT7q9TTh)
|
||||||
[](https://en.cryptobadges.io/donate/0x0D1549BbB00926BF3D92c1A8A58695e982f1BE2E)
|
[](https://www.blockchain.com/eth/address/0x0D1549BbB00926BF3D92c1A8A58695e982f1BE2E)
|
||||||
|
|
||||||
FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection.
|
FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection.
|
||||||
|
|
||||||
|
|||||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flaresolverr",
|
"name": "flaresolverr",
|
||||||
"version": "2.2.6",
|
"version": "2.2.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flaresolverr",
|
"name": "flaresolverr",
|
||||||
"version": "2.2.6",
|
"version": "2.2.7",
|
||||||
"description": "Proxy server to bypass Cloudflare protection.",
|
"description": "Proxy server to bypass Cloudflare protection.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"install": "node install.js",
|
"install": "node install.js",
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ const CAPTCHA_SELECTORS: string[] = [
|
|||||||
'#cf-challenge-hcaptcha-wrapper', '#cf-norobot-container', 'input[name="cf_captcha_kind"]'
|
'#cf-challenge-hcaptcha-wrapper', '#cf-norobot-container', 'input[name="cf_captcha_kind"]'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))
|
||||||
|
|
||||||
export default async function resolveChallenge(url: string, page: Page, response: HTTPResponse): Promise<HTTPResponse> {
|
export default async function resolveChallenge(url: string, page: Page, response: HTTPResponse): Promise<HTTPResponse> {
|
||||||
|
|
||||||
// look for challenge and return fast if not detected
|
// look for challenge and return fast if not detected
|
||||||
@@ -78,6 +80,8 @@ export default async function resolveChallenge(url: string, page: Page, response
|
|||||||
if (displayStyle == "none") {
|
if (displayStyle == "none") {
|
||||||
// spinner is hidden, could be a captcha or not
|
// spinner is hidden, could be a captcha or not
|
||||||
log.debug('Challenge element is hidden')
|
log.debug('Challenge element is hidden')
|
||||||
|
log.debug("Waiting for 30 secs");
|
||||||
|
await delay(30 * 1000);
|
||||||
// wait until redirecting disappears
|
// wait until redirecting disappears
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user