Anorov / cloudflare-scrape

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

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

Open Shanksee opened 3 years ago

Shanksee commented 3 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.6

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:\users\chris\appdata\local\programs\python\python37\lib\site-packages
Requires: requests
Required-by:

Code snippet involved with the issue

import cfscrape

scraper = cfscrape.create_scraper()
a = scraper.get("https://www.tibia.com/account/?subtopic=accountmanagement").content
print(a)

Complete exception and traceback

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

Traceback (most recent call last):
  File "C:\Users\Chris\AppData\Local\Programs\Python\Python37\lib\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 "testtibia.py", line 7, in <module>
    a = scraper.get("https://www.tibia.com/account/?subtopic=accountmanagement").content
  File "C:\Users\Chris\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 543, in get
    return self.request('GET', url, **kwargs)
  File "C:\Users\Chris\AppData\Local\Programs\Python\Python37\lib\site-packages\cfscrape\__init__.py", line 129, in request
    resp = self.solve_cf_challenge(resp, **kwargs)
  File "C:\Users\Chris\AppData\Local\Programs\Python\Python37\lib\site-packages\cfscrape\__init__.py", line 204, in solve_cf_challenge
    answer, delay = self.solve_challenge(body, domain)
  File "C:\Users\Chris\AppData\Local\Programs\Python\Python37\lib\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.tibia.com/account/?subtopic=accountmanagement]

URL of Pastebin/Gist with HTML source of protected page

[https://bpa.st/AR5Q]

Mohitmohan20 commented 3 years ago

Do we have an update? I am trying to read some data from link - https://npidb.org/organizations/ambulatory_health_care/ambulatory-surgical_261qa1903x

And the package is not working.

`ValueError Traceback (most recent call last)

in 8 print ("hell") 9 ---> 10 page = scraper.get(url) 11 12 #print (page.content.decode() /opt/anaconda3/lib/python3.7/site-packages/requests/sessions.py in get(self, url, **kwargs) 544 545 kwargs.setdefault('allow_redirects', True) --> 546 return self.request('GET', url, **kwargs) 547 548 def options(self, url, **kwargs): /opt/anaconda3/lib/python3.7/site-packages/cfscrape/__init__.py in request(self, method, url, *args, **kwargs) 127 # Check if Cloudflare anti-bot "I'm Under Attack Mode" is enabled 128 if self.is_cloudflare_iuam_challenge(resp): --> 129 resp = self.solve_cf_challenge(resp, **kwargs) 130 131 return resp /opt/anaconda3/lib/python3.7/site-packages/cfscrape/__init__.py in solve_cf_challenge(self, resp, **original_kwargs) 202 203 # Solve the Javascript challenge --> 204 answer, delay = self.solve_challenge(body, domain) 205 if method == 'POST': 206 cloudflare_kwargs["data"]["jschl_answer"] = answer /opt/anaconda3/lib/python3.7/site-packages/cfscrape/__init__.py in solve_challenge(self, body, domain) 290 raise ValueError( 291 "Unable to identify Cloudflare IUAM Javascript on website. %s" --> 292 % BUG_REPORT 293 ) 294 ValueError: Unable to identify Cloudflare IUAM Javascript on website. Cloudflare may have changed their technique, or there may be a bug in the script.`