Итак, я создал приложение Django, используя Beautiful soup для очистки веб-сайта, и оно отлично работало в процессе разработки. Однако затем развернул веб-приложение на сервере linux и запустил его, и именно тогда запрос был заблокирован, и я получил эту ошибку
You don't have permission to access "http://www.xxxxxx.com/en-ca?" on this server.<p>
Reference #xxxxxxxxxxxxxx
Я попытался использовать заголовки Mozilla и Chrome, но это по-прежнему не работает.
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Saf$
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Referer': 'https://cssspritegenerator.com',
'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'}
req = get(url, headers=hdr)
soup = BeautifulSoup(req.content,'html.parser')
print(soup)
Я также попробовал другое решение, которое я видел в Интернете, которое использует конкретный запрос, подобный этому
class AppURLopener(urllib.request.FancyURLopener):
version = "Mozilla/5.0"
def scrape():
opener = AppURLopener()
response = opener.open(url)
print('response: ', response)
, который дает мне ответ
response: <addinfourl at 139782695145200 whose fp = <_io.BufferedReader name=-1>>
чего я не понимаю
Так что мне просто нужна была помощь относительно того, что это за ответ и как я могу его использовать?
Кроме того, следует ли мне изучить использование чего-то вроде Selenium вместо beautifulSoup, поскольку это может быть лучшим вариантом для доступа к сайту незамеченным?
Плюс, поскольку запрос блокируется только на сервере linux при развертывании, следует ли мне попробовать другое средство развертывания, такое как heroku?