Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 정보획득량
- merge
- 회귀분석 알고리즘
- loop 문
- sqld
- Intersect
- 총과 카드만들기
- 팀스파르타
- difftime
- 히스토그램 그리기
- 데이터분석가
- 단순회귀 분석
- 회귀분석
- 그래프 생성 문법
- max
- count
- if문 작성법
- 상관관계
- %in%
- 데이터분석
- Dense_Rank
- 불순도제거
- 빅데이터
- 그래프시각화
- 여러 데이터 검색
- 빅데이터분석
- 순위출력
- Sum
- 막대그래프
- sql
Archives
- Today
- Total
ch0nny_log
[빅데이터분석] Python_29. 파이썬 웹 스크롤링1 본문
HTML이란?
Hyper Text Markup Language의 약자이고, 여러개의 태그(tag)를 연결해서 모아놓은 문서
실습1. 아래의 코드를 html 문서로 저장하고 열기
<html> <head><title> 요번주 일정 </title></head> <body> <p class="title"> 요번주에 웹스크롤링을 배웁니다. </p> </body> </html>
실습2. 위의 글씨를 진하게 하기
<html> <head><title> 요번주 일정 </title></head> <body> <p class="title"><b> 요번주에 웹스크롤링을 배웁니다. </b></p> </body> </html>
실습3. 위의 글씨에 밑줄을 그어보기
<html> <head><title> 요번주 일정 </title></head> <body> <p class="title"><b><u> 요번주에 웹스크롤링을 배웁니다. </u></b></p> </body> </html>
실습 4. 위의 글씨를 이텔릭체로 변경하기
<html> <head><title> 요번주 일정 </title></head> <body> <p class="title"><b><u><i> 요번주에 웹스크롤링을 배웁니다. </i></u></b></p> </body> </html>
실습5. p 태그를 추가해서 제목과 내용을 나누기
<html> <head><title> 요번주 일정 </title></head> <body> <p class="title"><b><u><i> 요번주에 웹스크롤링을 배웁니다. </i></u></b></p> <p class="content"> 데이터 수집을 자동화 하기위한 웹스크롤링 수업입니다. <br> 파이썬의 두번쨰 챕터 입니다. </p> </body> </html>
실습6. 위에서 만든 html 문서의 본문에 링크를 걸기
<html> <head><title> 요번주 일정 </title></head> <body> <p class="title"><b><u><i> 요번주에 웹스크롤링을 배웁니다. </i></u></b></p> <p class="content"> <a href="http://cafe.daum.net/oracleoracle" class="cafe1" id="link2"> 데이터 수집을 자동화 하기위한 웹스크롤링 수업입니다. </a> <br> 파이썬의 두번째 챕터 입니다. </p> </body> </html>
실습7. 중앙일보 신문사 홈페이지로 가서 F12 를 누르며 연습하기
◾beautiful soup 모듈 배우기
- beautiful soup 모듈: 파이썬 코드를 복잡하게 작성하지 않아도 편하게 웹스크롤링을 할 수 있도록 웹스크롤링에 필요한 여러 함수들을 제공하는 웹스크롤링 전문 모듈임.
실습. 데이터 게시판에서 ecol.html 데이터를 c드라이브 data 폴더에 저장한 후 페이지 열어 확인하기
**div 태그 → li 태그 → div 태그로 상위 태그에서 하위 태그로 내려오면서 텍스트에 접근하면 됨. 그리고 그 텍스트를 긁어오면 됨. html 문서를 보면 class 와 id 가 있는 것은 특정 부분의 위치정보라고 생각하면 됨. id 는 class 와는 달리 값이 중복되지 않는 유니크한 값으로 구성됨.
실습. ecol.html 문서를 웹스크롤링 하기 편하도록 beautiful soup 모듈에서 사용할 수 있도록 파싱(parsing) 하기
- 파싱(parsing) → 사람이 알아볼 수 있는 언어를 기계가 알아볼 수 있는 언어로 변환하는 것
- beautiful soup 모듈이 사용할 수 있도록 파싱 한다는 것 → html 문서를 beautiful soup 모듈안에서 모듈함수를 이용해 자유롭게 html 문서를 다룰 수 있는 상태로 만들겠다는 것
from bs4 import BeautifulSoup f = open('c:\\data\\ecol.html') soup = BeautifulSoup(f, 'html.parser') # html을 BeautifulSoup 모듈로 파싱 print(soup)
실습. eco.html 문서에서 class 이름이 name 에만 접근해서 그 주변 데이터를 긁어오시오.
from bs4 import BeautifulSoup f = open('c:\\data\\ecol.html') soup = BeautifulSoup(f, 'html.parser') result = soup.find_all(class_ = 'name')
실습. 위 result 리스트 안에 있는 요소들을 for loop 문을 이용해서 하나씩 뽑아서 출력하시오.
from bs4 import BeautifulSoup f = open('c:\\data\\ecol.html') soup = BeautifulSoup(f, 'html.parser') result = soup.find_all(class_ = 'name') for i in result: print(i)
실습. 위의 결과에서 html 코드 말고 텍스트에만 해당하는 코드를 출력하시오.
from bs4 import BeautifulSoup f = open('c:\\data\\ecol.html') soup = BeautifulSoup(f, 'html.parser') result = soup.find_all(class_ = 'name') for i in result: print(i.text)
문제. ecol.html 문서에서 숫자에 해당하는 부분만 긁어와서 출력하시오.
from bs4 import BeautifulSoup f = open('c:\\data\\ecol.html') soup = BeautifulSoup(f, 'html.parser') result = soup.find_all(class_ = 'number') for i in result: print(i.text)
마지막 문제. 위의 코드들을 가지고 아래의 결과를 출력하시오
from bs4 import BeautifulSoup f = open('c:\\data\\ecol.html') soup = BeautifulSoup(f, 'html.parser') name = [] number = [] result1 = soup.find_all(class_ = 'name') result2 = soup.find_all(class_ = 'number') for i in result1: name.append(i.text) for i in result2: number.append(i.text) for name, number in zip(a, b): print(f"{name} 은/는 {number} 마리가 있습니다.")
'빅데이터 분석(with 아이티윌) > python' 카테고리의 다른 글
[빅데이터분석] Python_31. 파이썬 웹 스크롤링 3 (한국일보) (0) | 2024.08.13 |
---|---|
[빅데이터분석] Python_30. 파이썬 웹 스크롤링2 (0) | 2024.08.13 |
[빅데이터분석] Python_28. 파이썬 상속 (1) | 2024.08.13 |
phython cbt 예상문제. (0) | 2024.08.12 |
[빅데이터분석] Python_27. 인스턴스 변수와 클래스 변수 (0) | 2024.08.09 |