BS4 라이브러리 모듈 03 BeautifulSoup로 구문 분석

 

03 리졸버 라이브러리 BeautifulSoup로

 

소개

아름다운 수프는이 HTML이나 XML 파일 파이썬 라이브러리에서 데이터를 추출 할 수 있습니다. 그것은 당신의 마음에 드는 변환 일반적인 문서 탐색을 통해 달성 될 수 있고, 검색 방법 .Beautiful 수프 몇 시간 또는 며칠 절약 할 수 있도록 당신이 문서를 수정 근무 시간. 당신은 아름다운 Soup3 문서, 아름다운 수프 3가 중지 개발을 찾고 있습니다, 공식 웹 사이트는 BS4에 이식, 현재 프로젝트에 아름다운 수프 4를 추천합니다

# 설치 아름다운 수프
 PIP 설치 beautifulsoup4의 

# 파서 설치 HTML 파서 아름다운 수프는 파이썬 표준 라이브러리는 운영 체제에 따라 LXML, 당신은 LXML를 설치하려면 다음과 같은 방법을 선택할 수 있습니다 그 중 하나는 타사 파서을 지원합니다 지원합니다 : 
- APT-GET 설치 파이썬 $ LXML 
$ easy_install을 LXML 
$ PIP LXML 설치 
: 다른 파서 html5lib, html5lib 같은 분석 방법과 브라우저의 순수 파이썬 구현 선택, 당신은 html5lib 설치하려면 다음 방법을 선택할 수 있습니다 
$ APT-을 설치 파이썬 - GET html5lib  $ easy_install을 html5lib  $ PIP html5lib 설치







다음 표는 공식 웹 사이트와 주 분석기뿐만 아니라, 자신의 장점과 단점이 있기 때문에 높은 효율, LXML 파서를 권장합니다. 이전 버전과 Python3 Python2.7.3에서 이전 3.2.2 버전에서 설치하거나 LXML합니다 파이썬 표준 라이브러리의 해당 버전이 내장되어 있기 때문에 HTML html5lib은, 구문 분석 방법은 안정적으로 충분하지 않습니다.

파서 용도 우월 불우 아동
파이썬 표준 라이브러리 BeautifulSoup로 (마크 업,  "html.parser")
  • 파이썬의 표준 라이브러리 구축
  • 실행 속도는 중간 정도입니다
  • 문서 결함 허용 기능
  • 문서 내결함성 가난한 전에 파이썬 2.7.3이나 3.2.2) 버전
LXML HTML 파서 BeautifulSoup로 (마크 업,  "LXML")
  • 빠른
  • 문서 결함 허용 기능
  • 당신은 C 언어 라이브러리를 설치해야합니다
LXML XML 파서

BeautifulSoup로 (태그,  [ "LXML",  "XML"])

BeautifulSoup로 (마크 업,  "XML")

  • 빠른
  • 유일한 지원 XML 파서
  • 당신은 C 언어 라이브러리를 설치해야합니다
html5lib BeautifulSoup로 (마크 업,  "html5lib")
  • 가장 좋은 내결함성
  • 문서를 구문 분석하는 브라우저 방법
  • 생성 문서 HTML5 형식
  • 천천히
  • 외부 확장에 의존하지 마십시오

중국어 문서 : HTTPS : //www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

두 기본적인 사용

html_doc = "" " 
<HTML> <HEAD> <TITLE>를 겨울잠 쥐의 이야기 </ TITLE> </ head> 
<body> 
<p 클래스 ="제목 "> <b>을 겨울잠 쥐의 이야기 </ B> </ p> 

<P 클래스 = "이야기"> 세 자매가 있었다 옛날 옛적에, 그리고 자신의 이름이었다 
<a href="http://example.com/elsie" class="sister" id="link1"> 엘지 < / A> 
<a href="http://example.com/lacie" class="sister" id="link2"> 라씨 </a> 및 
<A HREF = "http://example.com/tillie "클래스 ="자매 "ID ="LINK3 "> Tillie </a>에; 
. 그들이 잘 </ P> 하단에 살았 

<P 클래스 ="이야기 ">.... </ P는> 
"" " 

# 기본적인 사용 : 내결함성 처리 내결함성 문서는 HTML 코드가 불완전 모듈은 BeautifulSoup로를 얻을 BeautifulSoup로 가능한 파싱 상기 코드를 사용하여 에러를 식별하기 위해 사용될 수있는 경우를 말한다 객체 및 압입 출력의 표준 구성에 따른 
발 BS4 오기  BeautifulSoup로
스프 = BeautifulSoup로 (html_doc 'LXML' ) 폴트 톨러 런트 # 갖는 
고해상도 soup.prettify = ()를 # 핸들을 후퇴 구조화 디스플레이 
인쇄 (해상도)

세 문서 트리를 탐색

# 순회 문서 트리 : 직접 레이블 이름 선택을 통해이며, 빠른 속도의 선택을 특징으로하지만, 더 동일한 레이블의있을 경우 첫 번째 반환되는 
# 1의 사용 
, # 2의 레이블의 이름을 얻을 
태그 속성을 얻을, # 3 
콘텐츠 태그 획득 # 4, 
# 5를 선택 중첩 
# 6, 자 노드, 하위 노드 
# 7, 부모 노드의 조상 노드 
# 8 형제
코드보기

네 검색 문서 트리

1,이 필터

코드보기

2, find_all (이름, 바인드합니다, 재귀, 텍스트, ** kwargs로)

코드보기

3, 찾기 (이름, 바인드합니다, 재귀, 텍스트, ** kwargs로)

코드보기

(4) 다른 방식

코드보기

5, CSS 선택기

코드보기

다섯 문서 트리를 수정

링크 : HTTPS : //www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#id40

여섯 요약

# 요약 : 
# 1 권장 LXML 라이브러리 분석하는 
세 개의 선택기에 대해, # 2 : 태그 선택기 찾아 find_all, CSS 선택기 
    1 , 태그 선택기 선별 기능이 약하지만 빠른 
    2 , 추천 발견, 단일 질의 결과 또는 매칭 결과 여러 find_all 
    3 CSS 선택기 매우 익숙하다면 선택하여, 권장 
# 3 재산권의 바인드합니다 텍스트 get_text 값 ()을 획득하는 기억 일반적으로 사용되는 방법

소개

아름다운 수프는이 HTML이나 XML 파일 파이썬 라이브러리에서 데이터를 추출 할 수 있습니다. 그것은 당신의 마음에 드는 변환 일반적인 문서 탐색을 통해 달성 될 수 있고, 검색 방법 .Beautiful 수프 몇 시간 또는 며칠 절약 할 수 있도록 당신이 문서를 수정 근무 시간. 당신은 아름다운 Soup3 문서, 아름다운 수프 3가 중지 개발을 찾고 있습니다, 공식 웹 사이트는 BS4에 이식, 현재 프로젝트에 아름다운 수프 4를 추천합니다

# 설치 아름다운 수프
 PIP 설치 beautifulsoup4의 

# 파서 설치 HTML 파서 아름다운 수프는 파이썬 표준 라이브러리는 운영 체제에 따라 LXML, 당신은 LXML를 설치하려면 다음과 같은 방법을 선택할 수 있습니다 그 중 하나는 타사 파서을 지원합니다 지원합니다 : 
- APT-GET 설치 파이썬 $ LXML 
$ easy_install을 LXML 
$ PIP LXML 설치 
: 다른 파서 html5lib, html5lib 같은 분석 방법과 브라우저의 순수 파이썬 구현 선택, 당신은 html5lib 설치하려면 다음 방법을 선택할 수 있습니다 
$ APT-을 설치 파이썬 - GET html5lib  $ easy_install을 html5lib  $ PIP html5lib 설치







다음 표는 공식 웹 사이트와 주 분석기뿐만 아니라, 자신의 장점과 단점이 있기 때문에 높은 효율, LXML 파서를 권장합니다. 이전 버전과 Python3 Python2.7.3에서 이전 3.2.2 버전에서 설치하거나 LXML합니다 파이썬 표준 라이브러리의 해당 버전이 내장되어 있기 때문에 HTML html5lib은, 구문 분석 방법은 안정적으로 충분하지 않습니다.

파서 용도 우월 불우 아동
파이썬 표준 라이브러리 BeautifulSoup로 (마크 업,  "html.parser")
  • 파이썬의 표준 라이브러리 구축
  • 실행 속도는 중간 정도입니다
  • 문서 결함 허용 기능
  • 문서 내결함성 가난한 전에 파이썬 2.7.3이나 3.2.2) 버전
LXML HTML 파서 BeautifulSoup로 (마크 업,  "LXML")
  • 빠른
  • 문서 결함 허용 기능
  • 당신은 C 언어 라이브러리를 설치해야합니다
LXML XML 파서

BeautifulSoup로 (태그,  [ "LXML",  "XML"])

BeautifulSoup로 (마크 업,  "XML")

  • 빠른
  • 유일한 지원 XML 파서
  • 당신은 C 언어 라이브러리를 설치해야합니다
html5lib BeautifulSoup로 (마크 업,  "html5lib")
  • 가장 좋은 내결함성
  • 문서를 구문 분석하는 브라우저 방법
  • 생성 문서 HTML5 형식
  • 천천히
  • 외부 확장에 의존하지 마십시오

중국어 문서 : HTTPS : //www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

두 기본적인 사용

html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>

<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>

<p class="story">...</p>
"""

#基本使用:容错处理,文档的容错能力指的是在html代码不完整的情况下,使用该模块可以识别该错误。使用BeautifulSoup解析上述代码,能够得到一个 BeautifulSoup 的对象,并能按照标准的缩进格式的结构输出
from bs4 import BeautifulSoup
soup=BeautifulSoup(html_doc,'lxml') #具有容错功能
res=soup.prettify() #处理好缩进,结构化显示
print(res)

三 遍历文档树

#遍历文档树:即直接通过标签名字选择,特点是选择速度快,但如果存在多个相同的标签则只返回第一个
#1、用法
#2、获取标签的名称
#3、获取标签的属性
#4、获取标签的内容
#5、嵌套选择
#6、子节点、子孙节点
#7、父节点、祖先节点
#8、兄弟节点
View Code

四 搜索文档树

1、五种过滤器

View Code

2、find_all( name , attrs , recursive , text , **kwargs )

View Code

3、find( name , attrs , recursive , text , **kwargs )

View Code

4、其他方法

View Code

5、CSS选择器

View Code

五 修改文档树

链接:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#id40

六 总结

# 总结:
#1、推荐使用lxml解析库
#2、讲了三种选择器:标签选择器,find与find_all,css选择器
    1、标签选择器筛选功能弱,但是速度快
    2、建议使用find,find_all查询匹配单个结果或者多个结果
    3、如果对css选择器非常熟悉建议使用select
#3、记住常用的获取属性attrs和文本值get_text()的方法

추천

출처www.cnblogs.com/cherish937426/p/11955178.html