Anorov / cloudflare-scrape

A Python module to bypass Cloudflare's anti-bot page.
MIT License
3.36k stars 458 forks source link

cfscrape stuck with infinite recursion #341

Open GammaC0de opened 4 years ago

GammaC0de commented 4 years ago

Before creating an issue, first upgrade cfscrape with pip install -U cfscrape and see if you're still experiencing the problem. Please also confirm your Node version (node --version or nodejs --version) is version 10 or higher.

Make sure the website you're having issues with is actually using anti-bot protection by Cloudflare and not a competitor like Imperva Incapsula or Sucuri. And if you're using an anonymizing proxy, a VPN, or Tor, Cloudflare often flags those IPs and may block you or present you with a captcha as a result.

Please confirm the following statements and check the boxes before creating an issue:

Python version number

Run python --version and paste the output below:

Python 2.7.15

cfscrape version number

Run pip show cfscrape and paste the output below:

Name: cfscrape
Version: 2.1.1
Summary: A simple Python module to bypass Cloudflare's anti-bot page. See https://github.com/Anorov/cloudflare-scrape for more information.
Home-page: https://github.com/Anorov/cloudflare-scrape
Author: Anorov
Author-email: anorov.vorona@gmail.com
License: UNKNOWN
Location: c:\python27\lib\site-packages
Requires: requests
Required-by:

Code snippet involved with the issue

import cfscrape
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0"
url = "https://www.multiup.org/en/download/c7b7a24cc9546f6c396a1400d4bcfba8/Secret.Love.Affair.E01.engsubs.540p-SAM.mkv"
cookie_arg, user_agent = cfscrape.get_cookie_string(url, user_agent=user_agent)

Complete exception and traceback

(If the problem doesn't involve an exception being raised, leave this blank)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 416, in get_cookie_string
    tokens, user_agent = cls.get_tokens(url, user_agent=user_agent, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 383, in get_tokens
    resp = scraper.get(url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 243, in solve_cf_challenge
    resp = self.request(self.org_method, submit_url, **cloudflare_kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Python27\lib\site-packages\cfscrape\__init__.py", line 216, in solve_cf_challenge
    time.sleep(max(delay - (time.time() - start_time), 0))
KeyboardInterrupt

URL of the Cloudflare-protected page

[https://www.multiup.org/en/download/c7b7a24cc9546f6c396a1400d4bcfba8/Secret.Love.Affair.E01.engsubs.540p-SAM.mkv]

URL of Pastebin/Gist with HTML source of protected page

GammaC0de commented 4 years ago

Surprisingly it works if you change https to http 🤔

url = "http://www.multiup.org/en/download/c7b7a24cc9546f6c396a1400d4bcfba8/Secret.Love.Affair.E01.engsubs.540p-SAM.mkv"
kepi commented 4 years ago

Same problem, works with http but not https. Seems that recent reported issues are related to same issue.