파이톤을 사용하여 코로나바이러스 전파를 추적하는 방법

original article에서 찾을 수 있음kalebujordan.dev
안녕하세요, 파이썬 전문가. 이 강좌에서 파이썬의 요청과 Beautiful Soup 라이브러리를 사용하여 전 세계 관상 바이러스 병례를 추적하는 법을 배울 것입니다.
메모
만약 네가 신출내기라면, 나는 네가 먼저 A beginner guide to Webscraping를 보고 나서 다시 돌아와서 이 강좌를 완성하는 것을 건의한다.

요구 사항


이 강좌를 효과적으로 완성하기 위해서는 컴퓨터에 다음 라이브러리를 설치해야 하지만, Python 표준 라이브러리에 첨부된 CSV 모듈은 제외됩니다.
  • requests
  • BeautfulSoup
  • CSV
  • 장치


    상기 의존항을 pip로 설치하면 다음과 같다.
    $ pip install requests
    
    $ pip install beautifulsoup4
    

    시작해보도록 하겠습니다.


    멀미 박스는 어디에서 폐기합니까?


    위에서 말한 바와 같이 우리는 클라우드에서 정보를 캡처하여 전 세계의 병례 수량을 추적할 것이다. 많은 사이트가 선택할 수 있지만 본 강좌에서 우리는 worldometer를 사용할 것이다.

    웹 사이트의 구조를 알아보겠습니다.


    우선 우리가 폐기할 사이트의 구조를 알아보자. worldometer 사이트를 열고 아래로 굴러가면 아래 그림과 비슷한 표를 볼 수 있다.

  • 테이블은 어떻게 HTML로 표시됩니까?


    HTML의 표는 일반적으로 하나의 표 표기 표현을 사용하는데 그 중에서tr는 줄을 나타내고 td는 이 낮은 위치의 특정한 열을 나타낸다. 예를 들어 다음과 같다.
          <table border = "1">
             <tr>
                <td>Row 1, Column 1</td>
                <td>Row 1, Column 2</td>
             </tr>
    
             <tr>
                <td>Row 2, Column 1</td>
                <td>Row 2, Column 2</td>
             </tr>
          </table>
    
    이것은 *worldometers 표의 모든 줄이tr*로 표시되어 있음을 의미하기 때문에 WorldMeters표의 모든 줄을 필터하여 CSV 파일에 저장해야 한다.

    완전 관상 바이러스 거미


    다음은 이 강좌에 구축될 거미의 전체 코드입니다. World Meter 사이트에서 살아있는 코로나바이러스 번호를 캡처해서 CSV 파일에 저장할 수 있습니다.
  • 애플리케이션py
  • import csv
    import requests
    from bs4 import BeautifulSoup
    
    html = requests.get('https://www.worldometers.info/coronavirus/').text
    html_soup = BeautifulSoup(html, 'html.parser')
    rows = html_soup.find_all('tr')
    
    def extract_text(row, tag):
        element = BeautifulSoup(row, 'html.parser').find_all(tag)
        text = [col.get_text() for col in element]
        return text
    
    heading = rows.pop(0)
    heading_row = extract_text(str(heading), 'th')[1:9]
    
    with open('corona.csv', 'w') as store:
        Store = csv.writer(store, delimiter=',')
        Store.writerow(heading_row)
        for row in rows:
            test_data = extract_text(str(row), 'td')[1:9]
            Store.writerow(test_data)
    
    

    출력:



    코드를 몇 부분으로 나눌까요?


    필요한 라이브러리 가져오기


    앞의 3줄 코드는 필요한 모든 모듈과 라이브러리를 가져왔을 뿐입니다. 이 모듈과 라이브러리를 사용하여 살아있는covid19 사례를 제거하고 데이터를 파일에 저장할 것입니다.
    import csv
    
    import requests
    
    from bs4 import BeautifulSoup
    

    웹 페이지 가져오기


    관상 바이러스 번호를 추출하고 필터하기 위해서, 우리는 프로그래밍 방식으로 웹 페이지 원본 코드에 접근하는 방법이 필요합니다. 이렇게 할 때, 우리는 요청 라이브러리를 사용할 것입니다. 아래와 같습니다.
    html = requests.get('https://www.worldometers.info/coronavirus/').text
    

    테이블의 모든 행 추출


    현재 우리는 이미 사이트의 HTML 소스 코드를 가지고 있으며, 이 테이블에 표시된 관상 바이러스 통계 데이터의 모든 줄을 분석할 때가 되었다. 이렇게 할 때, beautifulSoup을 사용할 것이다. 아래와 같다.
    html_soup = BeautifulSoup(html, 'html.parser')
    
    rows = html_soup.find_all('tr')
    

    함수로 하여금 행과 열을 풀게 하다


    관상 바이러스 표의 모든 줄을 추출한 후에, 우리는 이 줄의 모든 열의 세부 사항을 해석하는 방법이 필요하다. 아래의 함수는 바로 이렇게 하는 것이다.
    def extract_text(row, tag):
        element = BeautifulSoup(row, 'html.parser').find_all(tag)
        text = [col.get_text() for col in element]
        return text
    

    헤더 확인


    제목의 이름과 실제 통계 데이터를 혼동하고 싶지 않기 때문에, 줄 목록에서 제목을 꺼내야 합니다. 아래와 같습니다.
    heading = rows.pop(0)
    
    heading_row = extract_text(str(heading), 'th')[1:9]
    

    행 세부내용을 분석하여 CSV에 저장


    마지막으로 우리의 마지막 작업은 표의 각 줄의 모든 단독 세부 사항을 분석한 다음에 *CSV 모듈을 사용하여 CSV* 파일에 저장하는 것이다. 아래와 같다.
    with open('corona.csv', 'w') as store:
        Store = csv.writer(store, delimiter=',')
        Store.writerow(heading_row)
        for row in rows:
            test_data = extract_text(str(row), 'td')[1:9]
            Store.writerow(test_data)
    
    파이썬 코로나바이러스 추적 방법을 방금 만들어 다른 개발자와 공유한 것을 축하합니다.
    당신의 흥미에 근거하여 당신도 이 문장들을 좋아할 수 있습니다.
  • A beginner guide to web scraping
  • How to track phone number in Python
  • The basics of requests module in Python
  • How to extract all website links in Python
  • How to control your Arduino with python
  • How to remove duplicates on your drive using python
  • 의견, 건의, 어려움이 있으면 아래의 평론 상자에 넣으십시오. 제가 가능한 한 빨리 답장을 드리겠습니다.
    곧 발표될 훌륭한python 강좌를 구독하는 것을 잊지 마라

    카레브 / 세계 쌀 관상 바이러스 스크레이퍼


    WorldMeter 사이트에서 코로나바이러스 통계 데이터를 추적하는python 프로그램


    세계 쌀 관상 바이러스 스크레이퍼


    이것은 World Meters 사이트에서 코로나 바이러스 번호를 삭제한 다음 요청과 Beautiful Soup 라이브러리를 사용하여 CSV 형식으로 저장하는 스크립트입니다
    View on GitHub

    좋은 웹페이지 즐겨찾기