rsefsE
@rsefsE

Как правильно получить код страницы?

Я занимаюcь парсингом facebook, и столкнулась с одной проблемой. Если я смотрю код страницы, то вижу красивое html дерево, разбитое на блоки и т.д. Но, когда я получаю soup, то мне приходит, как мне кажется, обфусцированный код страницы. Если вы сталкивались с таким, что вы делали, или, возможно, у вас есть какие-то хорошие источники, где можно понятнее новичку почитать про обфускацию. Буду рада всему. Пример кода, где я получаю soup.
if not self.browser.is_free():
    self.browser.driver.get(url)
#   js_code = "document.getElementsByTagName('html')[0].outerHTML"
#   your_elements = self.browser.driver.execute_script(js_code)
    html = self.browser.driver.page_source

    soup = BeautifulSoup(html, 'html.parser')

    return soup

5f2178ab062da144447725.png

5f2178e1b416e727212298.png
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Когда вы смотрите в devtools, вы видите DOM построенный браузером. Браузер распарсил как сумел, поправил ошибки какие смог, привел в красивый вид. Когда вы смотрите именно исходный код (ctrl+U в браузере) - видите что на самом деле пришло с сервера.

HTML-entities не сложно декодировать
import html
x = html.unescape('Эхо Москвы')
print(x) # -> эхо москвы

https://ideone.com/vtqrhO
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Так и не понял в чем проблема.
В F12-> Elements вы видите код страницы, отрендеренный JS скриптом
В Ctrl+U видно исходный код, без обработки JS

В исходном коде дерево не построено потому что так решил Facebook, код не предназначен для чтения людьми, компьютер его понимает и в минимизированном виде.

Или вас кодировка вида
Эхо Москвы

испугала?
Ответ написан
Ваш ответ на вопрос

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

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