beautiful soup 모듈 배우기
# beautiful soup
파이썬 코드를 복잡하게 작성하지 않아도
편하게 웹스크롤링을 할 수 있도록
여러 함수들을 제공하는 웹스크롤링 전문 모듈
1. 다음과 같은 내용이 담긴 html 문서를 data 폴더에 저장하기
2. html의 코드를 beautiful soup 모듈에서 사용할 수 있도록 파싱하고, 파싱된 내용 출력하기
1 2 3 4 | from bs4 import BeautifulSoup f=open('c:\\data\\ecologicalpyramid.html') soup=BeautifulSoup(f,"html.parser") print(soup) |
확인해보면, html 코드가 쫙 soup에 들어갔다.
3. 코드에서 name이라는 class에 접근해서, 데이터를 긁어오기
1 2 3 4 5 | from bs4 import BeautifulSoup f=open('c:\\data\\ecologicalpyramid.html') soup=BeautifulSoup(f,"html.parser") result=soup.find_all(class_ ="name") print(result) |
확인해보면, 리스트의 형태로 class="name"이었던 코드 부분들이 result에 담겼다.
4. result에서 html 코드말고, text만 출력하기
1 2 3 4 5 6 | from bs4 import BeautifulSoup f=open('c:\\data\\ecologicalpyramid.html') soup=BeautifulSoup(f,"html.parser") result=soup.find_all(class_ ="name") for i in result: print(i.get_text()) |
get_text() 함수를 이용하면 html 코드말고 텍스트만 가져올 수 있다.
5. html 코드에서 number만 긁어서 리스트 a에 저장하기
1 2 3 4 5 6 7 8 | from bs4 import BeautifulSoup f=open('c:\\data\\ecologicalpyramid.html') soup=BeautifulSoup(f,"html.parser") result=soup.find_all(class_ ="number") a=[] for i in result: a.append(i.get_text()) print(a) |
실전 가보자!
1. 중앙 일보에서 아무거나 기사 클릭, 기사 위에서 컨트롤 + s를 누르면 해당 페이지를 html로 저장할 수 있다.
나는 aa77로 저장.
2. aa77 파일 불러와서 파싱하기
1 2 3 4 | from bs4 import BeautifulSoup f=open('c:\\data\\aa77.html',encoding='UTF-8') soup=BeautifulSoup(f,"html.parser") print(soup) |
오우 마이 갓..(극히 일부분임)
클래스를 찾을 수가 없다.
3. 클래스 찾는 꿀팁
기사가 있던 페이지로 이동. --> 크롬 관리자 모드(F12) - [맥은 alt + cmd + i]를 누른다.
그럼 오른쪽 위에 창이 하나 뜨는데,
그리고 거기서 마우스 버튼을 클릭!!
그리고 기사 위에 커서를 올리면, 부분적으로 박스가 막 생기는데
여기서 원하는 기사의 텍스트 위에 클릭을 하면,
자동으로 오른쪽 창에 해당 텍스트 부분에 일치하는 html 코드로 자동으로 이동되서 선택이 된다
이렇게 선택된 부분을 확인해보면
오호
id는 article_body
class는 article_body mg fs4
라는 걸 알 수 있다.
4. 이제 class를 알았으니 아까와 동일하게 텍스트만 긁어보자
1 2 3 4 5 6 | from bs4 import BeautifulSoup f=open('c:\\data\\aa77.html',encoding='UTF-8') soup=BeautifulSoup(f,"html.parser") result=soup.find_all(class_ ='article_body mg fs4') for i in result: print(i.get_text()) |
오우.. 알차게 담겼다.
'나 취준생 > 파이썬' 카테고리의 다른 글
웹 스크롤링 연습 ( 중앙 일보 기사 ) (0) | 2020.12.16 |
---|---|
실전 웹 스크롤링 해보기 1 ( 시청자 게시판 반응 ) (0) | 2020.12.16 |
HTML 기초 개념 (0) | 2020.12.15 |
딕셔너리 (0) | 2020.12.10 |
파이썬으로 히스토그램 그래프 그리기 (0) | 2020.12.09 |