>백엔드 개발 >파이썬 튜토리얼 >Python 크롤러 xlml 구문 분석 라이브러리에 대한 포괄적인 이해

Python 크롤러 xlml 구문 분석 라이브러리에 대한 포괄적인 이해

黄舟
黄舟원래의
2017-08-08 11:33:081658검색

다음 편집기는 Python 크롤러의 xlml 구문 분석 라이브러리에 대한 기사를 제공합니다(포괄적 이해). 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집자를 따라가서 살펴보겠습니다

1.Xpath

XQuery와 xpoint는 모두 xpath 표현식

2. 노드

부모, 자식, 형제, 조상, 자손

3. 노드 선택

경로 표현식

lang
표현식 설명 경로 표현식 결과
nodename 이 노드의 모든 하위 노드 선택 bookstore bookstore 요소의 모든 하위 노드 선택
/ 에서 선택 루트 노드 /bookstore 루트 요소 bookstore를 절대 경로로 선택
// 위치에 상관없이 문서 내 선택 노드와 일치하는 현재 노드에서 선택 //book 모든 책 선택 문서에서의 위치에 관계없이 하위 요소
. 현재 노드 선택 bookstore//book 서점 하위 항목 선택
.. 의 모든 책 요소 선택 현재 노드의 상위 노드 선택 node

@ 속성 선택 //@lang

Predicate

이라는 이름의 모든 속성 선택 특정 노드를

찾기

하는 데 사용됩니다. 또는 지정된 값을 포함하는 노드

조건자는 대괄호 안에 포함됩니다Result bookstore 하위에 속하는 첫 번째 book 요소를 선택합니다. element서점 하위 요소에 속하는 마지막 book 요소를 선택합니다두 번째 책 요소 선택 bookstore 하위 요소에 속하는bookstore 요소의 모든 book 요소와 가격 값을 갖는 lang 속성이 있는 모든 title 요소를 선택합니다. 35.0보다 큼
Path 표현
/bookstore/book[1]
/bookstore/book[last()]
/bookstore/book[last()-1]
/bookstore/book[position()d75450ce6e73448eef3179fbd122728335.0]

알 수 없는 노드 선택(와일드카드)

* 모든 요소 노드와 일치

@* 모든 속성 노드와 일치

node() 모든 유형의 노드와 일치4.lxml 사용법


🎜🎜
#!/usr/bin/python
#_*_coding:utf-8_*_

from lxml import etree

text='''
<p>
 <ul>
  <li class="item-0"><a href="link1.html" rel="external nofollow" rel="external nofollow" >first item</a></li>
  <li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li>
  <li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li>
  <li class="item-1"><a href="link4.html" rel="external nofollow" >fourth item</a></li>
  <li class="item-0"><a href="link5.html" rel="external nofollow" >fifth item</a>
 </ul>
</p>
  &#39;&#39;&#39;

# html=etree.HTML(text) #html对象,存储在地址中,有自动修正功能
# result=etree.tostring(html) #将html对象转化为字符串

html=etree.parse(&#39;hello.html&#39;)
# result=etree.tostring(html,pretty_print=True)
# print result
print type(html)
result= html.xpath(&#39;//li&#39;)
print result
print len(result)
print type(result)
print type(result[0])
print html.xpath(&#39;//li/@class&#39;) # 获取li标签下的所有的class
print html.xpath(&#39;//li/a[@href="link1.html" rel="external nofollow" rel="external nofollow" ]&#39;) #获取li标签下href为link1的<a>标签
print html.xpath(&#39;//li//span&#39;) #获取li标签下所有的span标签
print html.xpath(&#39;//li[last()-1]/a&#39;)[0].text #获取倒数第二个元素的内容

위 내용은 Python 크롤러 xlml 구문 분석 라이브러리에 대한 포괄적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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