PDA

Просмотр полной версии : python selenium


Sanchez.
22.10.2022, 16:39
пытаюсь через либу селениум спарсить текст, где написано кол-во ответов в теме

https://forum.antichat.xyz/attachments/28176381/img_a632fef47f.png

так как эта штука имеет тег dd, я пытаюсь ее спарсить

https://forum.antichat.xyz/attachments/28176381/img_80187dcdf3.png

но почему-то мне выдает ошибку, якобы такого селектора нема на сайте

что делать

purpleee
22.10.2022, 16:41
Код показать не вариант?

Sanchez.
22.10.2022, 16:44
Код показать не вариант?



Код:






for k in blocks:
title = k.find_element(By.CLASS_NAME, 'structItem-title')
answers = k.find_element(By.CSS_SELECTOR, 'dd').text
url = title.find_element(By.CSS_SELECTOR, 'a').get_attribute('href')
title = title.text.replace('Исковое заявление', '').replace('ОС |', '').replace('OC |', '').replace(' ', '')
date_create = k.find_element(By.CLASS_NAME, 'u-dt').text
date_last_answer = k.find_element(By.CLASS_NAME, 'structItem-latestDate').text
await message.answer(answers)






пж без хейта за говнокод

purpleee
22.10.2022, 16:52
Код:






for k in blocks:
title = k.find_element(By.CLASS_NAME, 'structItem-title')
answers = k.find_element(By.CSS_SELECTOR, 'dd').text
url = title.find_element(By.CSS_SELECTOR, 'a').get_attribute('href')
title = title.text.replace('Исковое заявление', '').replace('ОС |', '').replace('OC |', '').replace(' ', '')
date_create = k.find_element(By.CLASS_NAME, 'u-dt').text
date_last_answer = k.find_element(By.CLASS_NAME, 'structItem-latestDate').text
await message.answer(answers)





пж без хейта за говнокод


Answers, url, date_create - верное показывает?

Sanchez.
22.10.2022, 16:54
Answers, url, date_create - верное показывает?


все верно показывает, кроме answers, там пустота

answers это то, о чем я писал в начале темы

purpleee
22.10.2022, 23:46
все верно показывает, кроме answers, там пустота

answers это то, о чем я писал в начале темы


Ну тогда скорее всего, на сайте имеется ещё одно поле, которое использует 'dd'. Я бы хотел посоветовать получить все элементы с 'dd' и уже отталкиваться от этого. Но в твоём варианте, лучшим выходом будет - искать данный элемент через XPATH (Тут есть немного инфы о нём(не реклама): https://selenium-python.readthedocs.io/locating-elements.html), Что бы получить XPATH данного элемента - нажми ПКМ - Копировать и выбери "Копировать XPATH"