>  기사  >  백엔드 개발  >  Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)

Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)

不言
不言원래의
2018-09-07 16:13:4012726검색

이 글에서는 Python 크롤러(케이스 포함)에서 lxml-etree와 xpath를 함께 사용하는 방법을 소개합니다. 내용이 매우 자세하여 도움이 되기를 바랍니다.

lxml: Python의 HTML/XML 파서

공식 웹사이트 문서: https://lxml.de/

사용하기 전에 lxml 패키지를 설치해야 합니다.

기능:

1.etree를 사용하세요. HTML(텍스트) 문자열 형식의 HTML 조각을 HTML 문서로 구문 분석합니다

2. xml 파일 읽기

3. etree와 XPath를 함께 사용하세요

lxml설치

[PyCharm]>[파일]>[ 설정]> ;[프로젝트 인터프리터]>[+] >[lxml]>[install]

특정 작업 스크린샷:

Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)

Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)

Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)

lxml-etree 사용법

  • 케이스 v25 파일: https ://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py25etree.py

  • lxml을 사용하여 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)

실행 결과

Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)

lxml-etree 사용법

  • Case v26etree2 파일: https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py26etree2.py

  • xml 파일 읽기 :

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

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

print(sxml)

실행 결과

Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)

etree와 XPath를 함께 사용합니다

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

  • etree와 XPath가 함께 사용됩니다:

# 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)

실행 결과

etree 및 xpath의 기본 사용에 대한 자세한 설명

Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)

파이썬 크롤러란 무엇인가요? 파이썬을 크롤러라고 부르는 이유는 무엇입니까?

위 내용은 Python 크롤러에서 lxml-etree와 xpath의 결합 사용(대소문자 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.