#python #html #selenium #xpath #web-scraping
#python #HTML #selenium #xpath #очистка веб-страниц
Вопрос:
Это html-код веб-сайта, который я хочу очистить
<div>
<div class="activityinstance">
<a class="" onclick="" href="https://www.blablabla.com">
<img src="http://www.blablabla.com/justapicture.jpg" class="iconlarge activityicon" alt="" role="presentation" aria-hidden="true">
<span class="instancename">title<span class="accesshide "> text
</span>
</span>
</a>
</div>
</div>
IMAGELINK = «http://www.blablabla.com/justapicture.jpg «
Моя цель — найти на конкретной странице все ссылки, связанные с IMAGELINK, с помощью python. изображение с этого URL-адреса, как правило, отображается несколько раз, и я хочу получить все ссылки, чтобы я мог щелкнуть по ним.
Я попытался найти элементы по имени класса «a», чтобы извлечь все ссылки на странице, и таким образом, если бы я мог найти их XPath, я мог бы просто отформатировать «/ img» и получить атрибут «src» из этого элемента. Но проблема в том, что я не нашел способа извлечь XPath с заданным элементом webdriver.
ПРИМЕЧАНИЕ: у меня нет доступа к Xpath элемента, если я не напишу какую-либо функцию для его генерации
Комментарии:
1. что вы пробовали? Показать код.
Ответ №1:
Найдите все элементы с тегом img
и распечатайте src
атрибут:
imgs = driver.find_elements_by_xpath("//img")
for img in imgs:
print(img.get_attribute("src"))
Ответ №2:
Я думаю, он хотел родительский href с img src, который равен
imgs = driver.find_elements_by_xpath("//img[src='http://www.blablabla.com/justapicture.jpg']/parent::a")
for img in imgs:
print(img.get_attribute("href"))
Комментарии:
1. Вы правы, это то, что я хотел. но это работает не так, как вы предлагаете. он возвращает сообщение: нет такого элемента: невозможно найти элемент: {«метод»:»xpath»,»селектор»:»//img[src=» moodle. technion.ac.il/theme/image.php/fordson/assign/1603222249 /… «} (Информация о сеансе: chrome=86.0.4240.111)
2. Я думаю, это потому, что изображение находится глубже в дереве, чем просто //img[src=….]
3. Используйте @src вместо src