파충류 BeautifulSoup로를 사용하여 기본 라이브러리 : 데이터 파충류 (오)

정규 표현식은 이해하기 쉽지만, 오류가 실패 일치하는 경우 구문은, 경기, 약간의 실수가 발생하지 수, 고정밀 매칭을 필요로한다. 이러한 상황은 파충류가 너무 많은 고양이의 눈 영화 콘텐츠를 크롤링에 크롤 링하지만, 쓰기 파충류 내 자신의 시간에 발생하는 것입니다 :

나중에 바보 같은 방법을 발견 :이 정확성을 보장합니다, 일단 실행을 일치하지만, 큰 파충류에 대한 자연 과일, 오늘은 긍정적 인 분석 라이브러리보다 다음 강력한 소개 (내가 그 몇 가지 사용 규칙 믿고 큰 파충류)를 견딜 수 없습니다 - 아름다운 수프

아름다운 수프의 I. 서론

공식 설명 :

아름다운 수프, 간단한, 네비게이션, 검색을 처리하기위한 파이썬 형 기능을 제공하는 구문 분석 트리 기능을 수정합니다. 간단하기 때문에, 그래서 완전한 응용 프로그램을 작성하는 많은 코드를 필요로하지 않는 문서를 구문 분석하는 사용자가 캡처 필요한 데이터를 제공하는 툴킷입니다.

다운 스프 자동 입력 문서를 코딩하는 유니 코드로 변환 문서는 인코딩 된 출력 UTF-8로 변환된다. 문서가 코드를 지정하지 않는 한 당신은, 인코딩을 고려하지 않아도, 다음, 아름다운 수프가 자동으로 인코딩을 식별 할 수 없습니다. 그런 다음, 당신은 단지 그것을 코딩 원본을 설명 할 필요가있다.

아름다운 수프는 파이썬 인터프리터 좋은으로, 다른 분석 전략이나 강한 속도 유연성을 사용자에게 제공하고 LXML, html6lib이되고있다.

둘째, 설치 BeautifulSoup로

아름다운 수프 3는 현재 프로젝트에서 추천 아름다운 수프 4의 개발을 중지하지만, BS4에 포팅되어, 우리는 수입 수입 BS4에해야 할 때입니다. 그래서 여기에 우리가 (BS4 함) 아름다운 수프 4.3.2 버전에있는도 Python3에 대한 BS4 지원에게 말했다는 충분하지 않지만 Python3 버전의 주니어 파트너가 있다면, 당신은 BS3 다운로드를 고려할 수, Python2.7.7를 사용 버전.

설치 :

1

easy_install을 beautifulsoup4

1

PIP BeautifulSoup로 설치

또 다른 대안 파서는 동일한 분석 방법과 브라우저, 당신은 html5lib를 설치하려면 다음과 같은 방법을 선택할 수 있습니다 html5lib, html5lib의 순수 파이썬 구현입니다 :

위의 설치

1

easy_install을 html5lib

1

핍 html5lib 설치

아름다운 수프 HTML 파서 파이썬 표준 라이브러리는 또한, 타사 파서을 지원합니다 우리가 그것을 설치하지 않는 경우, 파이썬은 기본 파이썬 파서, LXML 파서 더 강력하고, 빠르고, 권장 설치를 사용합니다 지원합니다.

세, BeautifulSoup로 중국어 문서

공식 문서 : http://beautifulsoup.readthedocs.io/zh_CN/latest/

네, BeautifulSoup로 기본적인 사용

첫째, 라이브러리를 가져와야합니다 BS4

1

BS4 수입 BeautifulSoup로에서

 

우리는 우리가 설명하는 데 사용에 따라 예제의 문자열을 만들

html = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title" name="dromouse"><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>
"""

  • 생성 BeautifulSoup로 개체

1

스프 = BeautifulSoup로 (HTML)

  • 로컬 파일을 참조

1

수프 = BeautifulSoup로 (오픈 ( 'index.html을'))

 

  • 형식화 된 출력

1

) (soup.prettify 인쇄

 

<HTML> <HEAD> <TITLE>는 겨울잠 쥐의 이야기 </ 제목> </ head> <body> <P 클래스 = "제목"이름 = "dromouse"> <b>를 겨울잠 쥐의 이야기 </ B> </ P> <P 클래스 = "이야기"> 세 자매가 있었다 옛적에 한 번; <! - 엘지 -> </A>, <클래스 = "자매"그들의 이름은 <a class="sister" href="http://example.com/elsie" id="link1">했다 HREF = "http://example.com/lacie"ID = "링크 2"> 라씨 </a>에서 <클래스 = "자매"HREF = "http://example.com/tillie"ID = "LINK3" > Tillie </a>를; 그들은 잘 하단에 살았다. </ P> <P 클래스 = "이야기"> ... </ P> </ BODY> </ HTML>

다섯, BeautifulSoup로 네 개의 객체

아름다운 수프 복잡한 HTML 문서는 모든 객체 네 종류로 분류 할 수 있으며, 각 노드는 파이썬 객체되어, 복잡한 트리 구조로 변환 :

  • 꼬리표
  • NavigableString
  • BeautifulSoup로
  • 논평

(A), 태그가 : HTML 태그는 <titlte> <body>는 ....

<제목>는 겨울잠 쥐의 이야기 </ 제목> <a class="sister" href="http://example.com/elsie" id="link1"> 엘지 </a>를

soup.title # 인쇄 <제목>는 겨울잠 쥐의 이야기 </ 제목>

soup.head # <헤드> 인쇄 <제목>는 겨울잠 쥐의 이야기 </ 제목> </ head>

<! - 엘지 ->을 <a class="sister" href="http://example.com/elsie" id="link1"> soup.a # 인쇄

soup.p # <P 클래스 = "제목"이름 = "dromouse"> <b>를 겨울잠 쥐의 이야기 </ B> </ P> 인쇄

모든 레이블을 조회 할 경우는, 라벨의 요구 사항을 충족하기 위해 모든 컨텐츠의 첫 번째 발견, 우리는 나중에 소개합니다.

태그를 들어, 두 가지 중요한 특성입니다 이름과 바인드합니다 있습니다

이름:

1

4

인쇄 soup.name

인쇄 soup.head.name

#[문서]

#머리

스프 특별한 객체 자체는 그 이름 [문서] 다른 내부 태그의 값을 출력 라벨 자체의 이름이 될 것이다.

바인드합니다 (속성) :

1

인쇄 soup.p.attrs

# { '클래스': [ '제목', '이름': 'dromouse'}

  • 여기, 우리가 인쇄 출력 모든 속성 페이지 레이블이, 사전 유형을 얻을.

우리는 혼자 속성을 얻고 싶은 경우에, 예를 들어, 우리는 클래스라는 것을 얻을 수 있습니다

  • 또한 속성의 이름으로 전달 get 메소드를 사용하여, 두 사람은 동일

1

인쇄 soup.p [ '클래스']

#['표제']

1

soup.p.get을 인쇄 ( '클래스')

#['표제']

 

  • 우리는 이러한 특성과 내용,에 있도록 수정할 수 있습니다 :

1

soup.p [ '클래스'] = "합니다 NewClass"

인쇄 soup.p

# & lt; 제 P 클래스 = "합니다 NewClass 'NAME ="dromouse "하였다 및 Rb 겨울잠 쥐의 층 및 / B 하였다 및 / P된다

 

  • 삭제 작업 :

1

델 soup.p [ '클래스']

인쇄 soup.p

# & lt; 제 P 이름 = "dromouse"하였다 및 Rb 겨울잠 쥐의 층 및 / B 하였다 및 / P된다

 

发布了32 篇原创文章 · 获赞 62 · 访问量 7万+

추천

출처blog.csdn.net/Byweiker/article/details/104071913