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

不言
Libérer: 2018-09-07 16:13:40
original
12714 Les gens l'ont consulté

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)
Copier après la connexion
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)
Copier après la connexion
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)
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!