Запуск этого же фрагмента при входе в 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 хлопотна.