파이톤을 사용하여 코로나바이러스 전파를 추적하는 방법
14028 단어 datasciencepythontutorialcodenewbie
안녕하세요, 파이썬 전문가. 이 강좌에서 파이썬의 요청과 Beautiful Soup 라이브러리를 사용하여 전 세계 관상 바이러스 병례를 추적하는 법을 배울 것입니다.
메모
만약 네가 신출내기라면, 나는 네가 먼저 A beginner guide to Webscraping를 보고 나서 다시 돌아와서 이 강좌를 완성하는 것을 건의한다.
요구 사항
이 강좌를 효과적으로 완성하기 위해서는 컴퓨터에 다음 라이브러리를 설치해야 하지만, Python 표준 라이브러리에 첨부된 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 파일에 저장할 수 있습니다.
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)
파이썬 코로나바이러스 추적 방법을 방금 만들어 다른 개발자와 공유한 것을 축하합니다.당신의 흥미에 근거하여 당신도 이 문장들을 좋아할 수 있습니다.
곧 발표될 훌륭한python 강좌를 구독하는 것을 잊지 마라
카레브 / 세계 쌀 관상 바이러스 스크레이퍼
WorldMeter 사이트에서 코로나바이러스 통계 데이터를 추적하는python 프로그램
세계 쌀 관상 바이러스 스크레이퍼
이것은 World Meters 사이트에서 코로나 바이러스 번호를 삭제한 다음 요청과 Beautiful Soup 라이브러리를 사용하여 CSV 형식으로 저장하는 스크립트입니다
View on GitHub
Reference
이 문제에 관하여(파이톤을 사용하여 코로나바이러스 전파를 추적하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kalebu/how-to-track-coronavirus-spread-using-python-283i
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(파이톤을 사용하여 코로나바이러스 전파를 추적하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kalebu/how-to-track-coronavirus-spread-using-python-283i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)