Spider_study заметки 04

рептилия

5.xpath синтаксис:

Введение:

XPath — это язык для поиска информации в XML-документах. XPath используется для навигации по элементам и атрибутам в XML-документах.

Он играет ту же роль, что и повторный обычный, и реализует аналогичные функции, но он проще и точнее обычного, поскольку ищет форматированные документы. Икс

Как пользоваться:

Используйте // для получения элементов на всей странице, затем напишите имя тега, а затем напишите предикат для извлечения. Например:

 //div[@class='abc']
Обратите внимание:
  1. Разница между / и //: / означает получение только прямых дочерних узлов. //Получить дочерние узлы. Обычно // используется больше. Конечно, это зависит от ситуации.

  2. содержит: иногда свойство содержит несколько значений, поэтому вы можете использоватьcontainsфункция. Пример кода выглядит следующим образом:

     //div[contains(@class,'job_detail')]
    
  3. Индексы в предикатах отсчитываются от 1, а не от 0.

Разобрать HTML-код с помощью lxml:
  1. Разобрать строку html: использоватьlxml.etree.HTMLПроведите анализ. Пример кода выглядит следующим образом:

     htmlElement = etree.HTML(text)
     print(etree.tostring(htmlElement,encoding='utf-8').decode("utf-8"))
    
  2. Разбор 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:
    1. использоватьxpathграмматика. следует использоватьElement.xpathметод. для выполнения выбора xpath. Пример кода выглядит следующим образом:

       trs = html.xpath("//tr[position()>1]")
      

      xpath函数То, что возвращается, всегда является списком.

    2. Получить свойства тега:

       href = html.xpath("//a/@href")
       # 获取a标签的href属性对应的值
      
    3. Получить текст, черезxpathсерединаtext()функция. Пример кода выглядит следующим образом:

       address = tr.xpath("./td[4]/text()")[0]
      
    4. Под определенной меткой выполнить функцию xpath для получения элементов-потомков под этой меткой, затем перед слэшем нужно поставить точку, что означает, что он получен под текущим элементом. Пример кода выглядит следующим образом:

       address = tr.xpath("./td[4]/text()")[0]
      

\