403 Запрещено на сайте с urllib3 - PullRequest
0 голосов
/ 19 июня 2020

Итак, я работаю над проектом по сканированию разных сайтов. Все сайты работают, кроме caesarscasino.com. Независимо от того, что я пытаюсь, я получаю 403 Forbidden Error. Я искал здесь и другие безрезультатно.

Вот мой код:

import urllib3
import urllib.request, urllib.error
from urllib.request import Request
import ssl

try:
    from urllib2 import urlopen
except ImportError:
    from urllib.request import urlopen

ssl._create_default_https_context = ssl._create_unverified_context #  overrides the default function for context creation with the function to create an unverified context.
urllib3.disable_warnings()

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
       'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
       'Accept-Encoding': 'none',
       'Accept-Language': 'en-US,en;q=0.8',
       'Connection': 'keep-alive'}
url = 'https://www.caesarscasino.com/'
req = Request(url, headers=headers) #opens the URL 
result = urllib.request.urlopen(req).read()

print(result)

С этим кодом ошибки:

Traceback (most recent call last):

  File "C:\Users\sp\Desktop\untitled0.py", line 30, in <module>
    result = urllib.request.urlopen(req).read()

  File "C:\Users\sp\anaconda3\envs\spyder\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)

  File "C:\Users\sp\anaconda3\envs\spyder\lib\urllib\request.py", line 531, in open
    response = meth(req, response)

  File "C:\Users\sp\anaconda3\envs\spyder\lib\urllib\request.py", line 640, in http_response
    response = self.parent.error(

  File "C:\Users\sp\anaconda3\envs\spyder\lib\urllib\request.py", line 569, in error
    return self._call_chain(*args)

  File "C:\Users\sp\anaconda3\envs\spyder\lib\urllib\request.py", line 502, in _call_chain
    result = func(*args)

  File "C:\Users\sp\anaconda3\envs\spyder\lib\urllib\request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

HTTPError: Forbidden

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Я считаю, что ваши проблемы связаны с тем, что это https. См. здесь для получения информации о том, как это исправить.

0 голосов
/ 19 июня 2020

Проблема со сканированием Интернета в том, что не многие люди любят, когда их очищают. Таким образом, они не позволяют машине (которой вы пользуетесь) получить доступ к этой странице. Это ошибка, которую вы получаете. Это в основном означает, что не заходите на этот сайт, когда вы программист. Однако есть способы обойти это. Например, подмена IP-адреса и ротация заголовков, пока ваша программа проверяет этот сайт. Я уже отвечал на этот вопрос о том, как это сделать здесь . Проверьте это и дайте мне знать в комментариях, работает ли это для вас.

...