>웹 프론트엔드 >HTML 튜토리얼 >실력을 향상하려면 마스터해야 합니다! lxml 선택기 팁 및 지원되는 선택기 요약!

실력을 향상하려면 마스터해야 합니다! lxml 선택기 팁 및 지원되는 선택기 요약!

PHPz
PHPz원래의
2024-01-13 09:17:06631검색

실력을 향상하려면 마스터해야 합니다! lxml 선택기 팁 및 지원되는 선택기 요약!

진급을 위한 필수품! lxml 선택기 사용 팁과 지원되는 선택기 목록!

개요:

선택기는 웹 데이터 스크래핑이나 데이터 추출을 수행할 때 매우 중요한 도구입니다. Python에는 선택할 수 있는 선택기 라이브러리가 많이 있으며, 그중 lxml이 강력한 선택기 라이브러리입니다. 이 기사에서는 lxml 선택기의 사용 기술과 지원되는 선택기 목록을 소개하여 독자가 데이터 추출 효율성을 더욱 향상시킬 수 있도록 돕습니다.

1. lxml 선택기 소개

lxml은 HTML 및 XML 문서를 구문 분석하기 위한 확장 가능한 XPath 선택기와 CSS 선택기를 제공하는 Python 기반 파서 라이브러리입니다. lxml 선택기의 가장 큰 장점은 빠르고 강력하며 대용량 파일 처리에 적합하다는 것입니다. lxml 선택기를 사용하기 전에 먼저 lxml 라이브러리를 설치해야 합니다.

pip install lxml

2. lxml 선택기의 기본 사용법

lxml 선택기의 기본 사용법은 매우 간단합니다. 해당 모듈을 가져오고 선택기 개체를 만든 다음 선택기 개체를 사용하여 데이터를 추출하면 됩니다.

먼저 lxml 라이브러리와 해당 모듈을 가져옵니다.

from lxml import etree

그런 다음 HTML 또는 XML 문서를 구문 분석하고 선택기 개체를 만듭니다.

# 解析HTML文档
html = '''
<html>
    <body>
        <div class="container">
            <h1>标题1</h1>
            <p class="content">内容1</p>
        </div>
        <div class="container">
            <h1>标题2</h1>
            <p class="content">内容2</p>
        </div>
    </body>
</html>
'''

# 创建选择器对象
selector = etree.HTML(html)

다음으로 선택기 개체를 사용하여 데이터를 추출할 수 있습니다. lxml 선택기는 XPath 선택기와 CSS 선택기를 지원합니다. 해당 사용법은 아래에 소개됩니다.

  1. XPath Selector

XPath(XML 경로 언어)는 XML 또는 HTML 문서의 정보를 탐색하고 추출하는 데 사용되는 언어입니다. lxml 선택기는 추출할 요소를 정확하게 찾을 수 있는 XPath 선택기를 지원합니다.

일반적인 XPath 구문에는 다음이 포함됩니다.

  • 요소 선택: /, //, []///[]
  • 选择属性:@
  • 选择文本:text()
  • 选择父节点:..

以下是几个XPath选择器的示例:

# 提取h1标签的文本
titles = selector.xpath('//h1/text()')
print(titles)  # 输出:['标题1', '标题2']

# 提取p标签的属性class值
classes = selector.xpath('//p/@class')
print(classes)  # 输出:['content', 'content']
  1. CSS选择器

CSS(Cascading Style Sheets)选择器是一种用于在HTML文档中选择元素的语言。lxml选择器也支持CSS选择器,通过CSS选择器可以通过标签、类、ID等方式进行元素的定位。

常见的CSS选择器包括:

  • 选择标签:标签名
  • 选择类:.类名
  • 选择ID:#ID名
  • 选择父子关系:空格
  • 选择相邻兄弟关系:+
  • 选择后续兄弟关系:~

以下是几个CSS选择器的示例:

# 提取h1标签的文本
titles = selector.cssselect('h1')
for title in titles:
    print(title.text)  # 输出:标题1、标题2

# 提取p标签的属性class值
classes = selector.cssselect('p.content')
for p in classes:
    print(p.get('class'))  # 输出:content、content

三、lxml选择器支持的选择器一览

lxml选择器支持的选择器包括XPath选择器和CSS选择器,下面是一些常用的选择器:

  • XPath选择器:

    • /:选择根节点
    • //:选择所有节点
    • []:条件选择
    • @:选择属性
    • text():选择文本
    • ..:选择父节点
  • CSS选择器:

    • 标签选择器:标签名
    • 类选择器:.类名
    • ID选择器:#ID名
    • 父子关系:空格
    • 相邻兄弟关系:+
    • 后续兄弟关系:~
    • 특성 선택: @
  • 텍스트 선택: text()

상위 노드 선택: ..

다음은 XPath 선택기의 몇 가지 예입니다.

rrreee

    CSS Selector🎜🎜🎜CSS(Cascading Style Sheets) 선택기는 HTML 문서에서 요소를 선택하는 데 사용되는 언어입니다. lxml 선택기는 태그, 클래스, ID 등을 통해 요소의 위치를 ​​지정할 수 있는 CSS 선택기도 지원합니다. 🎜🎜공통 CSS 선택기에는 다음이 포함됩니다. 🎜🎜🎜태그 선택: 태그 이름 🎜🎜클래스 선택: .클래스 이름🎜🎜ID 선택: #ID 이름🎜🎜부모 선택- 하위 관계: 공백 🎜🎜인접 형제 관계 선택: +🎜🎜다음 형제 관계 선택: ~🎜🎜🎜다음은 CSS 선택자의 몇 가지 예입니다: 🎜rrreee 🎜3. lxml 선택기가 지원하는 선택기 목록 🎜🎜 lxml 선택기가 지원하는 선택기에는 XPath 선택기와 CSS 선택기가 포함됩니다. 다음은 일반적으로 사용되는 선택기입니다. 🎜🎜🎜🎜XPath 선택기: 🎜🎜🎜/: 루트 선택 node🎜🎜//: 모든 노드 선택🎜🎜[]: 조건부 선택🎜🎜@: 속성 선택 🎜🎜text( ): 텍스트 선택 🎜🎜..: 상위 노드 선택 🎜🎜🎜🎜🎜CSS 선택기: 🎜🎜🎜 태그 선택기: 태그 이름 🎜🎜클래스 선택기: .클래스 이름 🎜🎜ID 선택기: #ID 이름🎜🎜아버지-자식 관계: 공백🎜🎜인접 형제 관계: +🎜🎜다음 형제 관계: <code>~ 🎜🎜🎜🎜🎜위의 일반적으로 사용되는 선택자 외에도 lxml은 위치 선택자, 속성 선택자 등과 같은 더 많은 선택자를 지원합니다. 독자는 lxml의 공식 문서를 확인하여 심층적인 연구를 수행할 수 있습니다. 이해. 🎜🎜결론: 🎜🎜lxml 선택기는 HTML 및 XML 문서의 구문 분석 및 데이터 추출에 적합한 XPath 선택기와 CSS 선택기를 지원하는 강력한 선택기 라이브러리입니다. 이 글에서는 lxml 선택기의 기본 사용법과 일반적으로 사용되는 선택기를 소개합니다. 학습과 실습을 통해 lxml 선택기를 더욱 숙달하고 적용하여 데이터 추출의 효율성과 정확성을 높일 수 있기를 바랍니다. 🎜

위 내용은 실력을 향상하려면 마스터해야 합니다! lxml 선택기 팁 및 지원되는 선택기 요약!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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