라고솔로가말했습니다
대표칭호 없음
SaidBySolo 8b58f951b6404b78ae3ba92d55d431f7
라고 생각했던 제가 안일해보이네요
예전에 파이썬 처음 시작할때 코로나 웹크롤링을 했었는데
진짜 엄청난 노가다였던게 PTSD로 오네요
근데 그걸 또하게되네요?
차근차근 해보자고요 차근차근
일단 질병관리본부를 들갑시다.
그래야 뭐 뜯던지 말던지 결정이라도 할수있으니까요.
제가 뜯어올거는 이 4개뿐이에요
더도말고 이 4개
더뜯기에는 제가 너무 귀찮거든요
바로 눌러서 어케 생겼는지 구경해봅시다.
보니까 생각보다 쉬울거같은거에요!
컨테이너 안에 livenum만 가져오고 findall해서 리스트로 뽑아내면 될거같다 생각했죠.
그러면 바로 작업을 시작해야겠죠
import aiohttp from bs4 import BeautifulSoup async def corona(): async with aiohttp.ClientSession() as cs: async with cs.get('http://ncov.mohw.go.kr/') as r: html = await r.text() soup = BeautifulSoup(html, 'lxml') data = soup.find('div', class_='liveNum') num = data.findAll('span', class_='num') corona_info = [corona_num.text for corona_num in num] return corona_info
일단 bs4를 당연히 임포트 해줍니다.
그러고 저는 비동기로 요청할것이기 때문에 aiohttp모듈도 임포트 해주고요
일단 질본에 html을가져옵니다.
그리고 해당 html을 뷰티풀 수프로 사용하기위해 넣어주고요
div에 livenum클래스를 가져옵니다.
그 하위 항목에 제가 원하는 값들이있거든요
span에 num을 전부 찾아줍시다.
해당 항목은 리스트로 나와요
이제 마무리는 리스트 캄프리 헨션스로 숫자만 빼오기!
['(누적)17,399', '14,200', '2,890', '309']
와! 잘뽑혀나왔네요!
생각보다 너무 간단해서 제가 제코드를 의심했어요.
예전에 네이버에서 크롤링 해오는 코드와 완전 딴판이라서 저도 놀랬어요
다시 코로나가 늘어나는 추세라서 해당 크롤링을 다시한번 보게되네요
끝!
마크러버
2020.08.23아이고 파이썬 초보인디...
라고내가 말했습니다
좋은 강좌 감사합니당