Извлечение ссылок с использованием XPath и BeautifulSoup не работаетPython

Программы на Python
Anonymous
Извлечение ссылок с использованием XPath и BeautifulSoup не работает

Сообщение Anonymous »

Я хочу извлечь ссылку, которая вложена как /html/body/div[1]/div[2]/div[1]/div/div/div/div/div/a в xpath , также см. подробное изображение вложения.
если полезно, у этих элементов div тоже есть класс.
Я пробовал

Код: Выделить всё

from selenium import webdriver
from bs4 import BeautifulSoup

browser=webdriver.Chrome()
browser.get('https://www.visionias.in/resources/daily_current_affairs_programs.php?type=1&m=05&y=2024')

soup=BeautifulSoup(browser.page_source)

element = soup.find_element_by_xpath("./html/body/div[1]/div[2]/div[1]/div/div/div/div/div/a")
href = element.get_attribute('href')
print(href)
этот код выдал ошибку

Код: Выделить всё

 line 9, in 
element = soup.find_element_by_xpath("./html/body/div[1]/div[2]/div[1]/div/div/div/div/div/a")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not callable
а также пробовал другой метод

Код: Выделить всё

from selenium import webdriver
from bs4 import BeautifulSoup

browser=webdriver.Chrome()
browser.get('https://www.visionias.in/resources/daily_current_affairs_programs.php?type=1&m=05&y=2024')

soup=BeautifulSoup(browser.page_source)

href = soup('a')('div')[1]('div')[2]('div')[1]('div')[0]('div')[0]('div')[0]('div')[0]('div')[0][href]
#href = element.get_attribute('href')
print(href)
это привело к ошибке

Код: Выделить всё

    href = soup('a')('div')[1]('div')[2]('div')[1]('div')[0]('div')[0]('div')[0]('div')[0]('div')[0][href]
^^^^^^^^^^^^^^^^
TypeError: 'ResultSet' object is not callable
ожидаемый результат должен быть следующим: https://www.visionias.in/resources/mate ... nt_affairs илиmaterial/?id=3731&type =daily_current_affairs

Кроме того, некоторые другие ссылки имеют такую ​​же вложенность, как указано выше, есть ли способ фильтровать ссылки, используя текст внутри

Код: Выделить всё

/html/body/div[1]/div[2]/div[1]/div/div/p
, например, текст здесь: 18 мая 2024 года, этот тег p также имеет идентификатор, но он несогласован или не имеет шаблона, поэтому мне не совсем удобно.
Я видел другие ответы на stackoverflow, но у меня это не работает
Также, если возможно, уточните ответ, так как мне придется применить тот же код и к некоторым другим сайтам.
п>

Подробнее здесь: https://stackoverflow.com/questions/785 ... ot-working

Вернуться в «Python»