일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 10월와인장터
- 10월와인
- 생와사비
- gs25맵탱
- 샘표계란이맛있어지는간장
- 용인중앙시장야시장
- 용인야시장
- 용인중앙시장
- 반려견놀이터
- 주비푸드
- 와인할인
- 와인초특가
- mysql1267
- 초밥
- 별빛마당
- 10월장터
- 이마트와인
- 용인강아지놀이터
- 와사비
- 와인장터
- 이마트
- 스시
- 와인특가
- 이마트와인장터
- gs25
- 고추냉이
- 자연에서갈아만든생와사비
- 삼양맵탱
- 강아지간식
- 기흥반려견놀이터
- Today
- Total
기억의 기록
[크롤링] 크롤링 기초 본문
크롤링 : 웹페이지 자체를 다운로드 하는 행위
스크레이핑 : 다운로드한 웹 페이지에서 원하는 데이터를 추출하는 작업
사용할 수 있는 라이브러리 혹은 프로그램
Wget, cURL, urllib, requests, Beautiful Soup
기본적인 크롤링을 해보자.
https://coinmarketcap.com/ko/ 에 있는 데이터를 긁어와보자.
위의 데이터를 가져오면 아래와 같다.
원(\) 표시가 아닌 달러($)가 표시되고 있다.
이런 페이지는 크롤링을 할 수는 있지만 페이지 로딩 후 변경되는 데이터이기 때문에 단순한 크롤링으론 불가능하다.
(후처리 되는 페이지 크롤링은 다른 페이지에서 확인가능)
from bs4 import BeautifulSoup as bs import requests import pandas as pd url = 'https://coinmarketcap.com/ko/' src = requests.get(url) src.status_code
soup = bs(src.content, 'html.parser') src_tbody = soup.find("tbody") #tr 만 먼저 추출 #tr 돌면서 td를 꺼낼것이야.. # td 안에 있는 텍스트 들을 꺼낼것이야.. {"id":"value"} 사용 할 필요 없음
#------------------------------------------------------------ 이쁘게 정리 #list_td.pop() del list_td[8:9]
list_td.append( (list_td[1].split("\n\n"))[1] ) list_td.append( (list_td[1].split("\n\n"))[2] )
for l, k in enumerate(list_td): list_td[l] = k.replace("\n","")
del list_td[7] del list_td[1] del list_td[0] #------------------------------------------------------------ 이쁘게 정리 끝
#정리된 td 를 tr 에 넣어 주고 계속 반복 list_tr.append(list_td) #추출 완료 했으니 데이터 프레임에 그냥 밀어 넣고 헤더만 붙이자. df = pd.DataFrame(list_tr) df.columns = ["시가총액","가격","거래량","공급량","24시간변경","대표코드","이름"] |
'데이터 분석 > 툴' 카테고리의 다른 글
[ELK Stack] 2 - Elastic Search (0) | 2018.07.09 |
---|---|
[ELK Stack] 1 - JVM (0) | 2018.07.09 |
[ELK Stack] 0 - 시작하며 (0) | 2018.07.09 |
[크롤링] 페이지를 이동하여 원하는 데이터 가져오기 (0) | 2018.07.04 |
[크롤링] selenium 을 이용한 지연 크롤링 (0) | 2018.07.04 |