python_네트워크 데이터 추출 편2

3468 단어 python 파충류
BeautifulSoup 라이브러리
이전 파충류 Blog 이후에 이 데이터를 얻은 후에 우리는 파충류의 원본일 뿐이고 더 많은 처리를 해야 한다. 바로 해석하는 곳이다. 여기는 바로 BeautifulSoup 파일 라이브러리를 이용한다.
소개를 살펴보겠습니다.
 
“You didn't write that awful page. You're just trying to get some data out of it. Beautiful Soup is here to help. Since 2004, it's been saving programmers hours or days of work on quick-turnaround screen scraping projects.”너 바보야, 이 말을 번역하고 중국어 Beautiful Soup 문서를 봐(http://beautifulsoup.readthedocs.io/zh_CN/latest/Beautiful Soup은 HTML이나 XML 파일에서 데이터를 추출할 수 있는 Python 라이브러리입니다.그것은 당신이 좋아하는 변환기를 통해 상투적인 문서 내비게이션을 실현하고, 문서를 찾고, 수정하는 방식을 실현할 수 있다.Beautiful Soup은 몇 시간, 심지어 며칠 동안의 업무 시간을 절약해 줍니다.
 
import requests
from bs4 import BeautifulSoup
r = requests.get('https://book.douban.com/subject/27031869/?icn=index-editionrecommend/')
soup = BeautifulSoup(r.text,"lxml")             '''BeautidulSoup     '''
partern = soup.find_all('p','comment-content')
for item in partern:
     print(item.string)

 
문 클래스 객체
soup = BeautifulSoup(문서, 파서)
 
 
프로젝트 실기: 중국 대학 순위 정향 파충류
# -*- coding: utf-8 -*-
import requests
import bs4
from bs4 import BeautifulSoup
import lxml
###        
def gethtml(url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "   "
    
###          
def dealDate(ulist,html):
    soup = BeautifulSoup(html,"lxml")
    for tr in soup.find('tbody').children:
        if isinstance(tr,bs4.element.Tag):
           tds = tr('td')
           ulist.append([tds[0].string,tds[1].string,tds[2].string])
           
###      
def printUnitlist(ulist,num):
    tplt = "{:^10}\t{:^6}\t{:^10}"
    print(tplt.format("  ","  ","    ",chr(255)))
    for i in range(num):
        u = ulist[i]
        print(tplt.format(u[0],u[1],u[2],chr(255)))
    
def main():
    uinfo = []
    url = "http://www.zuihaodaxue.com/shengyuanzhiliangpaiming2017.html";;
    html = gethtml(url)
    dealDate(uinfo,html)
    printUnitlist(uinfo,20)
    
main()

정규 표현식
물론 우리는 정규 표현식 라이브러리에서 키워드를 추출할 수 있다
정규 표현식(regular expression regex RE)을 사용하여 페이지의 핵심 정보를 추출합니다. [문자열 그룹의 특징이나 패턴을 간결하게 표시합니다.]
 
  • 텍스트 유형을 표현하는 특징
  • 문자열 그룹을 동시에 찾거나 바꾸기
  • 일치 문자열
  • 정규 표현식 구문:
     
     
    일반 표현식 표현 문자열:
     
     
    예: 일치하는 IP 주소의 정규 표현식
     
    정규 표현식re 라이브러리는 rawstring 형식 (원본 문자열 형식: 전의 문자를 포함하지 않는 형식) 을 사용하여 정규 표현식: r'text '을 표시합니다
     
    예: 우편 번호 r'[1-9]\d{5}
     
    Re 라이브러리 기능 함수:
     
    함수 메소드:
     
    def search(pattern,string,flags=0):
    pattern: 정규 표현식의 문자열이나 원본 문자열 표시
    string:일치하는 문자열
    flags: 정규 표현식 사용 시 제어 표시
               re.IGNORECASE 정규 표현식의 대소문자 무시
               re.MULTILINE 주어진 문자열의 각 행 일치 시작
               re.DOTALL 기본 일치 줄 바꿈 문자를 제외한 모든 문자열
    def split
    (pattern,string,maxsplit=0,flags=0)
    maxsplit: 최대 분할
     
    Re 라이브러리의 다른 등가 사용법(객체용-컴파일된 후 여러 작업):
     
    pat = re.compile (r'text')//re 일치 문자를re 라이브러리 대상으로 컴파일하기
    rst = pat.search(string)//뒤에 pat 대상만 조작하면 됩니다
     
    Match 객체:정규 표현식 정보 포함
     
     
     
    # Re 라이브러리 탐욕 일치: re 라이브러리는 기본적으로 탐욕 일치, 즉 가장 긴 문자열을 출력합니다.
     
    #최단매칭:최소매칭은 인사?의 일치
     
    당신의 평론을 받아서 저를 진보시키기를 바랍니다!

    좋은 웹페이지 즐겨찾기