Anorov / cloudflare-scrape

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

ValueError: Unable to identify Cloudflare IUAM Javascript on website. Cloudflare may have changed their technique, or there may be a bug in the script. #380

Closed alexNMD closed 3 years ago

alexNMD 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 3.7.5

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: /Users/alexandre/Documents/DEVs/the_nmdownloader/venv/lib/python3.7/site-packages
Requires: requests
Required-by: 

Code snippet involved with the issue

import cfscrape
scraper = cfscrape.create_scraper(delay=10)

[...]

for url in urls:
     content = scraper.get(url).content
     soup = BeautifulSoup(content, "html.parser")

Complete exception and traceback

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

Traceback (most recent call last):
  File "/Users/alexandre/Documents/DEVs/the_nmdownloader/venv/lib/python3.7/site-packages/cfscrape/__init__.py", line 255, in solve_challenge
    javascript, flags=re.S
AttributeError: 'NoneType' object has no attribute 'groups'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "tools/cron_tasks.py", line 12, in <module>
    parse_data()
  File "/Users/alexandre/Documents/DEVs/the_nmdownloader/tools/../scripts/scrapper.py", line 98, in parse_data
    urls = get_data_url(urls)
  File "/Users/alexandre/Documents/DEVs/the_nmdownloader/tools/../scripts/scrapper.py", line 33, in get_data_url
    content = scraper.get(url).content
  File "/Users/alexandre/Documents/DEVs/the_nmdownloader/venv/lib/python3.7/site-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/Users/alexandre/Documents/DEVs/the_nmdownloader/venv/lib/python3.7/site-packages/cfscrape/__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "/Users/alexandre/Documents/DEVs/the_nmdownloader/venv/lib/python3.7/site-packages/cfscrape/__init__.py", line 204, in solve_cf_challenge
    answer, delay = self.solve_challenge(body, domain)
  File "/Users/alexandre/Documents/DEVs/the_nmdownloader/venv/lib/python3.7/site-packages/cfscrape/__init__.py", line 292, in solve_challenge
    % BUG_REPORT
ValueError: Unable to identify Cloudflare IUAM Javascript on website. Cloudflare may have changed their technique, or there may be a bug in the script.

Please read https://github.com/Anorov/cloudflare-scrape#updates, then file a bug report at https://github.com/Anorov/cloudflare-scrape/issues."

URL of the Cloudflare-protected page

https://www.zt-za.com/top-films/

URL of Pastebin/Gist with HTML source of protected page

https://pastebin.com/JAdp0HaL