Как выбрать все XPATH на любом сайте в Python - PullRequest
0 голосов
/ 04 марта 2020

Я хочу почистить списки товаров с любого сайта. Например, некоторые веб-сайты: Amazon, Alibaba имеют максимум 10 продуктов на странице, а некоторые - 20. Я не хочу ставить циклы в XPATH для каждого веб-сайта.

Есть ли способ получить все XPATH, связанные со специальным атрибутом любого веб-сайта? Например, если у нас есть XPATH таблицы, то он покажет все XPATH таблицы. Любая помощь будет оценена ...

1 Ответ

1 голос
/ 06 марта 2020

Вот пример HTML Я буду использовать

XPath тега :

  • / html / body / div [4] / div / aside [1] / div [2] / div [2] / div / ul

XPath тегов :

  1. / html / body / div [4] / div / aside [1] / div [2] / div [2] / div / ul / li [1]
  2. / html / body / div [4] / div / aside [1] / div [2] / div [2] / div / ul / li [2]
  3. / html / body / div [4] / div / aside [1] / div [2] / div [2] / div / ul / li [3]
  4. / html / body / div [4] / div / aside [1] / div [ 2] / div [2] / div / ul / li [4]
  5. / html / body / div [4] / div / aside [1] / div [2] / div [2] / div / ul / li [5]

Что вы можете сделать, так это создать более общий XPath, который соберет все нужные вам XPath.

Допустим, вы хотите найти все элементы в списке:

  • / html / body / div [4] / div / aside [1] / div [2] / div [2] / div / ul / li

Обратите внимание, что в конце этого XPath нет [#], поэтому он найдет все элементы, содержащие этот xpath

Пример:

from selenium import webdriver

url = 'https://www.livesoccertv.com/'

driver = webdriver.Firefox()
driver.get(url)

test = driver.find_elements_by_xpath('/html/body/div/div[5]/div[3]/div/table[2]/tbody/tr')
print(len(test))
driver.close()

Возвращает результат 35

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...