5.xpath синтаксис:
Введение:
XPath — это язык для поиска информации в XML-документах. XPath используется для навигации по элементам и атрибутам в XML-документах.
Он играет ту же роль, что и повторный обычный, и реализует аналогичные функции, но он проще и точнее обычного, поскольку ищет форматированные документы. Икс
Как пользоваться:
Используйте // для получения элементов на всей странице, затем напишите имя тега, а затем напишите предикат для извлечения. Например:
//div[@class='abc']
Обратите внимание:
-
Разница между / и //: / означает получение только прямых дочерних узлов. //Получить дочерние узлы. Обычно // используется больше. Конечно, это зависит от ситуации.
-
содержит: иногда свойство содержит несколько значений, поэтому вы можете использовать
contains
функция. Пример кода выглядит следующим образом://div[contains(@class,'job_detail')]
-
Индексы в предикатах отсчитываются от 1, а не от 0.
Разобрать HTML-код с помощью lxml:
-
Разобрать строку html: использовать
lxml.etree.HTML
Проведите анализ. Пример кода выглядит следующим образом:htmlElement = etree.HTML(text) print(etree.tostring(htmlElement,encoding='utf-8').decode("utf-8"))
-
Разбор html файлов: используйте
lxml.etree.parse
разобрать. Пример кода выглядит следующим образом:htmlElement = etree.parse("tencent.html") print(etree.tostring(htmlElement, encoding='utf-8').decode('utf-8'))
По умолчанию эта функция использует
XML
парсер, так что если вы столкнетесь с каким-то нестандартнымHTML
Когда код будет разобран, ошибка будет разобрана, поэтому вам придется создать ее самостоятельно.HTML
парсер.parser = etree.HTMLParser(encoding='utf-8') htmlElement = etree.parse("lagou.html",parser=parser) print(etree.tostring(htmlElement, encoding='utf-8').decode('utf-8'))
lxml в сочетании с мерами предосторожности xpath:
-
использовать
xpath
грамматика. следует использоватьElement.xpath
метод. для выполнения выбора xpath. Пример кода выглядит следующим образом:trs = html.xpath("//tr[position()>1]")
xpath函数
То, что возвращается, всегда является списком. -
Получить свойства тега:
href = html.xpath("//a/@href") # 获取a标签的href属性对应的值
-
Получить текст, через
xpath
серединаtext()
функция. Пример кода выглядит следующим образом:address = tr.xpath("./td[4]/text()")[0]
-
Под определенной меткой выполнить функцию xpath для получения элементов-потомков под этой меткой, затем перед слэшем нужно поставить точку, что означает, что он получен под текущим элементом. Пример кода выглядит следующим образом:
address = tr.xpath("./td[4]/text()")[0]
-
\