Maison  >  Article  >  développement back-end  >  L'utilisation combinée de lxml-etree et xpath dans le robot d'exploration Python (avec cas)

L'utilisation combinée de lxml-etree et xpath dans le robot d'exploration Python (avec cas)

不言
不言original
2018-09-07 16:13:4012670parcourir

Cet article vous présente l'utilisation combinée de lxml-etree et xpath dans les robots Python (avec cas). Le contenu est très détaillé, j'espère qu'il pourra vous aider.

lxml : l'analyseur HTML/XML de Python

Documentation officielle du site : https://lxml.de/

Avant utilisation, vous devez installer le package lxml

Fonction :

1. Analyser HTML : utilisez etree.HTML(text) pour analyser des fragments HTML au format chaîne dans des documents HTML

2.

3. Utilisez etree et XPath ensemble

installation lxml

[PyCharm]>[file]>[settings]>[Project Interpreter]>[+ ] > [lxml]>[installer]

Captures d'écran d'opérations spécifiques :

Lutilisation combinée de lxml-etree et xpath dans le robot dexploration Python (avec cas)

Lutilisation combinée de lxml-etree et xpath dans le robot dexploration Python (avec cas)

Lutilisation combinée de lxml-etree et xpath dans le robot dexploration Python (avec cas)

Utilisation de lxml-etree

  • Fichier de cas v25 : https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB /py25etree. py

  • Utilisez lxml pour analyser le code HTML

# 先安装lxml
# 用 lxml 来解析HTML代码

from lxml import etree

text = &#39;&#39;&#39;<p>
    <ul>
        <li class="item-0"><a href="0.html">item 0 </a></li>
        <li class="item-1"><a href="1.html">item 1 </a></li>
        <li class="item-2"><a href="2.html">item 2 </a></li>
        <li class="item-3"><a href="3.html">item 3 </a></li>
        <li class="item-4"><a href="4.html">item 4 </a></li>
        <li class="item-5"><a href="5.html">item 5 </a></li>
    </ul>     </p>&#39;&#39;&#39;

# 利用 etree.HTML 把字符串解析成 HTML 文件
html = etree.HTML(text)
s = etree.tostring(html).decode()

print(s)
Exécuter les résultats

Lutilisation combinée de lxml-etree et xpath dans le robot dexploration Python (avec cas)

Utilisation du fichier lxml-etree

  • Fichier de cas v26etree2 : https://xpwi.github.io/py/py%E7%88%AC %E8% 99%AB/py26etree2.py

  • Lire le fichier XML :

# lxml-etree读取文件from lxml import etree

xml = etree.parse("./py24.xml")
sxml = etree.tostring(xml, pretty_print=True)

print(sxml)
Exécuter le résultat

Lutilisation combinée de lxml-etree et xpath dans le robot dexploration Python (avec cas)

etree et XPath sont utilisés ensemble

  • Case v26expath Fichier : https://xpwi.github.io/py/py%E7%88%AC %E8%. 99%AB/py26expath.py

  • etree et XPath sont utilisés ensemble :

# lxml-etree读取文件from lxml import etree

xml = etree.parse("./py24.xml")
print(type(xml))# 查找所有 book 节点rst = xml.xpath(&#39;//book&#39;)
print(type(rst))
print(rst)# 查找带有 category 属性值为 sport 的元素rst2 = xml.xpath(&#39;//book[@category="sport"]&#39;)

print(type(rst2))
print(rst2)# 查找带有category属性值为sport的元素的book元素下到的year元素rst3 = xml.xpath(&#39;//book[@category="sport"]/year&#39;)
rst3 = rst3[0]

print(&#39;-------------\n&#39;,type(rst3))
print(rst3.tag)
print(rst3.text)
Résultat d'exécution

Résultats d'utiliser etree et >

Qu'est-ce qu'un robot d'exploration Python ? Pourquoi Python est-il appelé un robot d'exploration ?

Lutilisation combinée de lxml-etree et xpath dans le robot dexploration Python (avec cas)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn