@Stepan47
Я программист, преимущественно на Python, Java, С#

Как обойти блокировку сайта от парсинга?

Вот этот сайт нужно спарсить: https://runcsgo.org.
Этот сайт защищен, и я использую fake-useragent для того чтобы обойти блокировку.
Я ее вроде как прохожу, но получаю совсем не то что на сайте при входе через браузер.
Вот мой код:
import requests as req
from bs4 import BeautifulSoup as BS
from fake_useragent import UserAgent
UserAgent().chrome
html = req.get("http://csgorun.org",headers={'User-Agent': UserAgent().chrome})
soup = BS(html.text, features="html.parser")
print(html)

Я знаю про selenium, но он открывает браузер, поэтому будет мешаться программе.
Скорее всего я как-то не правильно получаю страницу, но точно не уверен, может что-то не так с защитой.
Вообщем если кто знает как решить, напишите, очень поможете.
  • Вопрос задан
  • 2651 просмотр
Решения вопроса 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Кто вам сказал, что там стоит блокировка?
1) Некоторые данные подгружаются по xhr.
2) Также данные на сайте обновляются по websocket.

websockets.readthedocs.io
PyPI websockets 8.1
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Stepan47 Автор вопроса
Я программист, преимущественно на Python, Java, С#
Вот еще и мой ответ.
Сайт не блокирует меня если я использую UserAgent. Но увы у меня не получилось получить всю страницу с помощью BS4, поэтому я использовал chrome driver но в фоновом режиме.
Вот такой код получился:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import driver
from time import sleep
from bs4 import BeautifulSoup as BS

ua = dict(DesiredCapabilities.CHROME)
options = webdriver.ChromeOptions()
options.add_argument('headless')
browser = webdriver.Chrome(chrome_options=options)
browser.get('https://csgorun.org/')
soup = BS(browser.page_source,"html.parser")

Спасибо всем кто помогал.
Ответ написан
Комментировать
@ghazar7an
Вот тебе простой код парсера страницы.
from bs4 import BeautifulSoup
import requests
url = 'http://csgorun.org'
page = requests.get(url)
soup = BeautifulSoup(page.text, "html.parser")
print(soup)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы