일반적으로 사용되는 분석 방법이 요약되어 파이썬 파충류 beautifulsoup4 (작성자)

모든 사람들이 파이썬 파충류 beautifulsoup4 요약에 관한 일반적인 분석 방법을 공유하기 위해 오늘 작은, 내용이 아주 좋은, 지금 공유에 모든 사람들을위한, 모양을 필요로하는 친구와 함께 작은 시리즈 다음에 좋은 참조 값을 가지고 작은 시리즈
개요

beautifulsoup4 페이지와 상황을 해결하는 방법에
beautifulsoup4 사용을

beautifulsoup4 정보, 공식 웹 사이트는 아주 자세하게 이야기하고있다, 나는 쉽게 액세스 할 수 있도록 요약으로 일반적으로 사용되는 분석 방법을 넣었습니다.

로드 HTML 문서

첫 번째 단계는 BeautifulSoup로 객체를 형성하도록 상기 BeautifulSoup로에 HTML 문서 BeautifulSoup로 사용하는 것이다.

가져 오기 요청을
BeautifulSoup로 가져 BS4로부터
URL = "http://new.qq.com/omn/20180705/20180705A0920X.html"
R & requests.get = LT (URL)
HTMLs = r.text
#Print (HTMLs)
스프 = BeautifulSoup로 (HTMLs 'html.parser')

BeautifulSoup로 클래스 초기화, 두 개의 매개 변수가 추가 될 필요 즉, 우리가 HTML 소스 오르 첫 번째 인수는, 상기 제 파라미터는 HTML 파서 세 일반적으로 사용 파서있다 "이다 HTML .parser ","LXML "," html5lib "는 공식 웹 사이트는 물론, PIP 할 필요가 LXML 설치 때문에 높은 효율, LXML를 권장합니다.

물론,이 세 가지의 내용은 분석적 경우에 해석되지는 불완전이 경우 레이블 (절반 p 태그)로, 다른 객체 :

= BeautifulSoup로 스프 ( "A] </ P>"이 "html.parser")
#에만 자동 시작 태그 보수 만 회색 종료 태그 자동 무시
# 결과 : <A> </a>에
스프 BeautifulSoup로 = ( "A] </ P>", "LXML")
# 결과 <HTML> <BODY> <A> </A> </ BODY> </ HTML>
스프 = BeautifulSoup로 ( "<A> </ P> ","html5lib ")
# html5lib 일반적으로 자동 완성 발생되어 라벨
# 결과 <HTML> <head> < / head> <body> <A> <p> </ p> </ A> </ BODY> </ HTML>

사용

사용, 나는 ~보기 위해, 모든 후, 주파수 I 사용을 소개하려고

레이블 이름에 따르면, 아이디, 클래스 및 기타 정보는 라벨을 얻었다

HTML = '<p 클래스 = "제목"ID = "P1"> <B>를 Dormouses 스토리 </ B> </ p>'
스프 = BeautifulSoup로 (HTML 'LXML')
# 오기 클래스의 이름에 기초하여, P-태그 모든 내용
soup.find (클래스 _ = "제목")
# 또는
soup.find ( "P", 클래스 _ = "제목"언급 된 ID = "P1"위)
# GET "는 겨울잠 쥐의 이야기"클래스 P 라벨의 제목 텍스트 내용
soup.find (클래스 _ = "타이틀"). get_text ()
#는 또한 전방 및 후방 블랭크를 제거할지 여부를 선택할 수 있으며, 획득 한 다른 텍스트 레이블과 세퍼레이터를 지정할 수있다.
스프 = BeautifulSoup로 ( '<p 클래스 = "제목"ID = "P1"> <b>을 Dormouses 이야기 </ B> </ p> <p 클래스 = "제목"ID = "P1"> <b>을 Dormouses 스토리 </ B> </ P> ','html5lib ")
. soup.find (클래스 _ ="제목 ") get_text ("| "




soup.find_all (= 상기 class_ ( "TIT") re.compile)
순환이 = FALSE #recursive 파라미터 만 태그 라벨의 제 1 서브 스테이지의 현재 데이터 찾을
스프 = BeautifulSoup로를 ( "<HTML> <HEAD> <TITLE> ABC가 ','LXML ')
soup.html.find_all ( "제목",이) 거짓 = 재귀

태그 이름, id로, 클래스 정보는 라벨의 복수를 인수

스프 = BeautifulSoup로 ( '<p 클래스 = "제목"ID = "P1"> <B> 이야기 등 </ B> </ p> <p 클래스 = "제목"ID = "P1"> <b>을 Dormouses 스토리 </ B는> </ P> ','html5lib ")
# 가져 오기 제목 라벨의 모든 클래스
soup.find_all I에 대한 (클래스 _ ="제목 ") :
인쇄 (i.get_text ())
#는 특정 번호를 얻으 제목 라벨의 클래스
soup.find_all I에서 (클래스 _ = "제목", 제한 = 2)에 대한 :
인쇄 (i.get_text ())

라벨 태그 다른 속성에 따라 인수

HTML = '<a alog-action="qb-ask-uname" href="/usercent" rel="external nofollow" target="_blank"> 달팽이 노래 </a>에'
수프 = BeautifulSoup로 (HTML, 'LXML' )
# 받기 시간에, 어느 쪽도 태그도 클래스 ID는, 액세스 규칙이 필요로하는 자신의 속성에 따라 정의되지하는 "노래 달팽이"
(저자 = soup.find 'A', { "하여 alog 액션": "QB-요청 . -UName "}) get_text ()
# 또는
저자 = soup.find (바인드합니다 = {" 하여 alog 액션 ":"QB는-물어-끝나면 uname "})

계속 찾고 및 레이블 뒤에

soup.find_all_previous ( "P")
soup.find_previous ( "P")
soup.find_all_next ( "P")
soup.find_next ( "P")

找父标签

soup.find_parents ( "DIV")
soup.find_parent ( "DIV")

CSS选择器

soup.select ( "타이틀") # 태그 이름
soup.select ( "HTML 헤드 TITLE ') #의 다단 태그 이름
soup.select ("p>는 ")를 #P의 내의 모든 태그
soup.select ("P> "내부) #P 탭, 라벨 ID 링크 1 번호의 확인
"#이 같은 클래스의 형제 찾기) # 링크 1 ~ .sister soup.select를 ( "
# 링크 1 + .sister soup.select (" ")
(soup.select을." 자매 ")가 # 클래스 이름 검색
soup.select ("# 여동생」)에 의해 ID #의 이름 검색
soup.select ( 'A [HREF = " http://example.com/elsie"REL = "외부 따르지"] ) #을 속성 태그 체크에 따라
soup.select ( 'A [HREF $ = "Tillie"]')
soup.select_one (. "자매")

나타날 수있는 몇 가지 오류가 캡처 프로세스 파충류을 방지하기 위해 시도 할 수 있습니다

UnicodeEncodeError '문자표'코덱 없습니다 인코딩 문자 u는 '\ Xfoo라면'위치 표시 줄 (에 또는 UnicodeEncodeError 다른 유형의
필요는 트랜스 코딩 할

AttributeError는 'NoneType'객체는 더없는 속성 '갑'
이 부동산이없는
참고 : 많은 사람들이 파이썬 프로세스가 문제를 해결할 수없는 온갖 종류의 문제가 발생합니다 배운다. 이러한 이유로 작은 시리즈는 내장 된 파이썬 전체 스택 무료 Q & A 교환 치마 : 해결 된 문제점을 이해하지 못하는 624 440 745 오래된 드라이버, 최신 파이썬 튜토리얼 프로젝트는 ,, 서로 모여 함께 진행 감독 할 수도있다!
자신의 아이디어와 네트워크에서이 문서의 텍스트 및 이미지,뿐만 아니라 상업적 목적, 저자에 소유하여, 교환 내용, 질문이있는 경우, 치료를 위해 문의하시기 바랍니다.

추천

출처www.cnblogs.com/shabge/p/12372906.html