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 |
Tags
- 교환학생주거
- 무신사 데이터분석
- 데이터 시각화 포트폴리오
- 태블로
- 제네바
- 데이터 분석 포트폴리오
- 공모전후기
- 태블로 포트폴리오
- 미래에셋 공모전
- 리뷰분석
- HEG
- 교환학생 장학금
- 교환학생
- tableau
- 아셈듀오 후기
- 제네바기숙사
- 아셈듀오
- 데이터공모전
- 아셈듀오 선정
- 패스트캠퍼스 #자료구조 #코딩테스트 #배열
- 텍스트분석 시각화
- 제네바경영대학교
- 두잇알고리즘코딩테스트
- CRM
- 제네바주거
- MairaDB
- 테이블계산
- 키워드시각화
- 파이썬
- 데이터 포트폴리오
Archives
- Today
- Total
민듀키티
따라하며 익히는 크롤링 마스터 1 (크롤링 기초) 본문
1. 크롤링 기법 소개
(1) 크롤링 프로세스 이해
라이브러리 호출 -> URL 접속 -> HTML 받아오기 -> 정보찾기 -> 저장하기
Requests, BeautifulSoup | Selnium, BeautifulSoup | Selenium (Only) |
import requests import bs4 import BeautifulSoup |
from selunium import webdriver import bs4 import BeautifulSoup |
from selunium import webdriver |
req = requests.get(url) | browser = webdriver.Chrome() brower.get(url) |
browser = webdriver.Chrome() brower.get(url) |
html = req.txt | html = browser.page_source | html을 받아오지 않는다 -> 현재 브라우저와 계속 연동 |
soup = BeautifulSoup(html, 'html parser' data = soup.select('조건') |
soup = BeautifulSoup(html, 'html parser' data = soup.select('조건') |
data = brower.find_elements_by_css_selector('조건') |
3가지 방법의 장&단점 정리
Requests, BeautifulSoup | Selnium, BeautifulSoup | Selenium (Only) |
특징 ) HTML 내부 데이터만 가능 | 특징) HTML 외부 데이터도 모두 가능 | |
(+) 굉장히 빠르다 (-) 외부 데이터 수집 불가 -> 페이지 안에 있는 데이터만 |
(+) 모든 데이터를 가져올 수 있다 (-) 상대적으로 느리다 (+) 브라우저 조작 가능 |
BeautifulSoup -> select('조건A')
selenium -> find_elements_by_css_selector('조건A')
2. webdriver 설치
from selenium import webdriver
browser = webdriver.Chrome('./chromedriver.exe') # C 는 대문자, 괄호 안에는 경로
# selenium : 브라우저를 조작하는 / 컨트롤하는 / 명령을 할 수 있는
3. 브라우저 열기
driver.get('http://www.economytalk.kr/news/articleView.html?idxno=219136')
html=driver.page_source
#html을 해석하기 위해서 BeautifulSoup이 필요함
from bs4 import BeautifulSoup
#무엇으로 읽을 것이냐 ? -> html.parser로 읽을 것이다!
soup=BeautifulSoup(html,'html.parser')
#태그찾기
search=soup.select('div')
★중요★ 태그에서 필요한 값만 추출하기
soup.select('태그조건')
soup.select('태그명')
soup.select('#id속성값')
soup.select('태그명.class속성값')
soup.select('부모태그정보 > 자식태그정보')
4. url의 구조
url은 주소와 파라미터로 나뉜다
주소 : http://주소...x/aaaa/ssss/dddd
파라미터 : ? 뒤에 나타남
searching_words = ['파이썬','코로나','강의']
for word in searching_words:
print(word)
url = f'https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query={word}'
print(url)
>>>
파이썬
https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=파이썬
코로나
https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=코로나
강의
https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=강의
5. html 구조
더보기
1. <태그> </태그>
2. <태그명>
<태그명 속성1 = 값>
<태그명 속성2 = 값, 속성2 = 값>
3. <태그>홍길동</태그>
4. <태그1> #부모태그
<태그2> #자식태그
<태그3> #자손태그
</태그3>
</태그2>
<태그/1>
'Data Analysis > 크롤링' 카테고리의 다른 글
따라하며 익히는 크롤링 마스터 2 (넷플릭스 크롤링) (0) | 2022.02.02 |
---|