Не удалось извлечь атрибут с помощью Beautifulsoup в глубоком дереве div - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь извлечь атрибут из глубокого <div> дерева. Я попытался find_all и выберите;оба не удалось. Пожалуйста помоги. Линия в сером - это то, что мне нужно. Мне нужно вывести значение data-num, которое равно 2.

По сути, мне нужно получить значение оранжевого в верхнем правом углу https://www.xin.com/c2b_car_o/201/

Спасибо затвоя помощь!

enter image description here

1 Ответ

0 голосов
/ 12 ноября 2019

спасибо за помощь. Я наконец нашел решение.

[проблема]: я не смог найти веб-элементы с помощью Beautifulsoup.
[причина]: элемент был представлен с помощью JavaScript. Я не знаю почему? но это ответ, который я получил из другого источника. Мне сказали, что мне нужно использовать селен.
[решение]: я использовал селен для успешного извлечения чисел. Смотрите мой код ниже.
[дополнительная помощь]: проблема решена! Но мне неясно, какая ситуация хороша для селена. И как мне узнать, какой конкретный элемент отображается с помощью JavaScript, который не может быть извлечен с помощью Beautifulsoup. Пожалуйста, попробуйте и опубликуйте свой код, если вы можете сделать это с помощью bs4. Или, пожалуйста, предоставьте больше объяснений. Благодарю.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('G:\chromedriver\chromedriver')
driver.get("https://www.xin.com/c2b_car_o/201/")
elements = driver.find_elements_by_xpath('//*[@class="mt-number-animate-dom"]')
num_str=[el.get_attribute("data-num") for el in elements]
print(int(''.join(num_str)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...