Python3 Атрибут BeautifulSoup возвращает неожиданные результаты - PullRequest
0 голосов
/ 08 февраля 2020

Запуск этого же фрагмента при входе в Instagram и при отсутствии входа в Instagram возвращает разные результаты. Это странно, потому что когда я проверяю страницу в браузере в обоих условиях, она показывает, что я ожидаю.

Ожидаемый выход при входе в систему должен быть:

like

Или:

Unlike

, поскольку это то, что он показывает в браузере при обоих условиях (вошел, не вошел), когда я проверяю элемент

Код, который выполняется без входа в систему

from selenium import webdriver
from bs4 import BeautifulSoup


driver = webdriver.Chrome()

driver.get('https://www.instagram.com/p/B8M-YrmAb_f/')
soup = BeautifulSoup(driver.page_source,"lxml")
check = soup.find('svg', {'class': '_8-yf5'}).attrs['aria-label']
print(check)

Возвращает:

Like

Это код, запущенный при входе в систему

from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Chrome()

Successful log in code here ...
        ...
        ...
        ...

driver.get('https://www.instagram.com/p/B8M-YrmAb_f/')
soup = BeautifulSoup(driver.page_source,"lxml")
check = soup.find('svg', {'class': '_8-yf5'}).attrs['aria-label']
print(check)

Возвращает:

Instagram

Цель возврата ожидаемого результата: Этот код предназначен для проверки, если Пост Instagram уже понравился. Код BeautifulSoup предназначен для извлечения атрибута aria-label элемента «сердце» или «как кнопка».

Я пробовал несколько разных способов достижения этого с помощью BeautifulSoup и Selenium. Я даже пытался вытащить CSS, однако мое отсутствие знаний в этих библиотеках мешает мне.

Последнее прибежище

После проверки CSS я могу видеть, что заливка = "цвет" меняется с blacki sh на pinki sh, но извлекая это сторона html хлопотна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...