Python 파충류 의 두 가지 해석 방법 과 네 가지 파충류 의 실현 과정

대부분의 친구 들 에 게 파충 류 는 python 을 배 우 는 가장 좋 은 시작 과 입문 방식 이다.파충류 의 사고방식 이 고정 되 고 프로 그래 밍 모델 도 상대 적 으로 간단 하기 때문에 보통 세부 적 인 처리 에 있어 경험 을 쌓 으 면 입문 에 성공 할 수 있다.본문 은 어떤 웹 페이지 를 겨냥 하여  python 기초 파충류 의 2 대 해석 라 이브 러 리(  Beautiful Soup 과...  lxml)와 몇 가지 정보 추출 실현 방법 을 분석 하여  python 파충류 의 첫 만 남.
기초 파충류 의 고정 패턴
필자 가 여기 서 말 하 는 기초 파충류 란 비동기 로드,인증 코드,대리 등 고급 파충류 기술 을 처리 할 필요 가 없 는 파충류 방법 을 말한다.일반적으로 기초 파충류 의 두 가지 요청 쿠 르 리 브 와  요청 중  requests 는 보통 대부분의 사람들 에 게 사랑 을 받 습 니 다.물론 입 니 다.  urllib 도 기능 이 완비 되 어 있다.양 대 해석 라 이브 러 리  Beautiful Soup 은 강하 기 때문에...  HTML 문서 분석 기능 으로 인 기 를 끌 고 있 으 며,또 다른 분석 라 이브 러 리 입 니 다.  lxml 코 디  xpath 표현 식 을 바탕 으로 효율 도 향상 되 었 습 니 다.기초 파충류 의 경우 두 가지 요청 창고 와 두 가지 해석 창고 의 조합 방식 은 개인의 선 호 에 따라 선택 할 수 있다.
필자 가 즐겨 사용 하 는 파충류 조합 도 구 는:
  • requests +  BeautifulSoup
  • requests +  lxml
  • 같은 홈 페이지 파충류 의 네 가지 실현 방식
    필 자 는 텐 센트 뉴스의 첫 페이지 의 뉴스 정보 캡 처 를 예 로 들 었 다.
    첫 페이지 모양 은 다음 과 같 습 니 다:
     
    예 를 들 어 우 리 는 모든 뉴스의 제목 과 링크 를 캡 처 하여 사전 의 구조 로 조합 하여 인쇄 하고 싶다.우선 HTML 소스 코드 를 보고 뉴스 제목 정보 조직 형식 을 확인한다.
     
    대상 정보 가 em 탭 에 존재 할 수 있 습 니 다.  a 탭 에 있 는 텍스트 와  href 속성 중.직접 이용 가능  requests 라 이브 러 리 구조 요청 및 사용  BeautifulSoup 혹은...  lxml 분석.
    방식 1:requests+  BeautifulSoup +  select css 선택 기
    
     # select method
     import requests
     from bs4 import BeautifulSoup
     headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'} 
     url = 'http://news.qq.com/' 
     Soup = BeautifulSoup(requests.get(url=url, headers=headers).text.encode("utf-8"), 'lxml')
     em = Soup.select('em[class="f14 l24"] a')
     for i in em:
       title = i.get_text()
       link = i['href']
       print({'  ': title, 
     '  ': link
       })
    일반적인 처리 방식 입 니 다.캡 처 효 과 는 다음 과 같 습 니 다.
     
    방식 2:requests+  BeautifulSoup +  find_all 정보 추출
    
     # find_all method
     import requests
     from bs4 import BeautifulSoup
     headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
     url = 'http://news.qq.com/'
     Soup = BeautifulSoup(requests.get(url=url, headers=headers).text.encode("utf-8"), 'lxml') 
     em = Soup.find_all('em', attrs={'class': 'f14 l24'})for i in em:
       title = i.a.get_text()
       link = i.a['href']
       print({'  ': title,
          '  ': link
       })
    같은 requests+  Beautiful Soup 의 파충류 조합 이지 만 정보 추출 에 사용 되 었 습 니 다.  find_all 방식.효 과 는 다음 과 같 습 니 다:
     
    방식 3:requests+  lxml/etree +  xpath 표현 식
    
     # lxml/etree method
     import requests
     from lxml import etree 
     headers = {  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
     url = 'http://news.qq.com/'
     html = requests.get(url = url, headers = headers)
     con = etree.HTML(html.text)
     title = con.xpath('//em[@class="f14 l24"]/a/text()')
     link = con.xpath('//em[@class="f14 l24"]/a/@href')
     for i in zip(title, link):
       print({'  ': i[0],
     '  ': i[1]
       })
    lxml 라 이브 러 리 에 있 는  etree 모듈 을 분석 한 후 사용 합 니 다.  xpath 표현 식 으로 정보 추출 을 진행 하 는데 효율 이 약간 높다  BeautifulSoup +  select 방법.여기 서 두 목록 의 조합 을 채 택 했 습 니 다.  zip 방법.python 학습 교류 군:125240963 효 과 는 다음 과 같 습 니 다:
     
    방식 4:requests+  lxml/html/fromstring +  xpath 표현 식
    
     # lxml/html/fromstring method
     import requests
     import lxml.html as HTML 
     headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
     url = 'http://news.qq.com/'
     con = HTML.fromstring(requests.get(url = url, headers = headers).text)
     title = con.xpath('//em[@class="f14 l24"]/a/text()')
     link = con.xpath('//em[@class="f14 l24"]/a/@href')
     for i in zip(title, link):
       print({'  ': i[0],'  ': i[1]
       })
    방법 3 과 유사 합 니 다.분석 에 만 lxml 라 이브 러 리 를 사 용 했 습 니 다.  html.from string 모듈.캡 처 효 과 는 다음 과 같 습 니 다:
     
    많은 사람들 이 파충류 가 파악 하기 어렵다 고 생각한다.지식 이 너무 많 기 때문에 전단 을 알 아야 하고 python 의 숙련 이 필요 하 며 데이터 베 이 스 를 알 아야 하 며 정규 표현 식,XPath 표현 식 등 은 말 할 필요 도 없다.사실 간단 한 웹 페이지 의 데이터 캡 처 에 대해 서 는 몇 가지 캡 처 방안 을 시도 해 보 세 요.하 나 를 보면 열 을 알 수 있 고 python 파충류 에 대해 서도 깊이 이해 할 수 있 습 니 다.이대로 가면 각종 홈 페이지 구조 에 대해 섭렵 을 했 고 자연 경험 이 풍부 하 며 도랑 이 된다.
    총결산
    위 에서 말 한 것 은 소 편 이 소개 한 Python 파충류 의 두 가지 해석 방법 과 네 가지 파충류 의 실현 과정 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기