python으로 데이터 다운받기 - BeautifulSoup로 스크레이핑하기
2018. 3. 8. 02:04ㆍPython-이론/python-인공지능2
BeautifulSoap 이용하기
BeautigulSoup는 Html과 xml을 분석해주는 라이브러리입니다. 우선은 설치부터 해보겠습니다.
pip를 이용해서 다운 받을 수 있다. 가장 간단한 방법으로 사용해보자!!!
from bs4 import BeautifulSoup soup = BeautifulSoup(html,'html.parser') h1 = soup.html.body.h1 p1 = soup.html.body.p p2 = p1.next_sibling.next_sibling print("h1: ",h1.string) print("p1: ",p1.string) print("p2: ",p2.string)
가장 주의해야할 부분들은 BeautifulSoap를 통해 객체를 만들엊 줄 때 인자를 처음은 html 두번째는 html을 분석할 거면 html.parser로 써주어야한다. 그리고 태그이름으로 값을 찾을때에는 bs4의 인스턴트.html.body.태그이름 으로 찾을 수 있다. 첫 next_slibing은 공백과 띄어쓰기를 읽고 다음 next_slibing이 다음 p태그의 값을 가리킨다.
이번에는 urlibr과 함께 사용하기
from bs4 import BeautifulSoup from urllib import request from urllib import parse API = "http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp" values = {'id':'108'} params = parse.urlencode(values) print("params: ",params) url = API +"?"+params data = request.urlopen(url).read() soup = BeautifulSoup(data,"html.parser") print(soup.find(id="title").string) print(soup.find(id="wf").string)
결과물
id값 혹은 class 값을 통해 데이터 찾기
from bs4 import BeautifulSoup html = """""" soup = BeautifulSoup(html,'html.parser') h1 = soup.select_one("div > h1#title").string li_list = soup.select("div > ul.item > li") p = soup.find(id="title") print(h1) print(p) for li in li_list: print(li.string)후니의 컴퓨터
- node.js
- python
- dataStructure
'Python-이론 > python-인공지능2' 카테고리의 다른 글
web api를 사용하여 데이터 추출하기 (0) | 2018.03.30 |
---|---|
ubuntu에서 selenium과 Phantomjs를 사용해서 스크래핑해오기 (0) | 2018.03.29 |
로그인이 필요한 사이트 파싱해오기 (3) | 2018.03.14 |
css selector를 통해서 스크래핑해오기 (0) | 2018.03.09 |
python으로 데이터 다운로드 하기 - urllib 모듈 이용하기 (2) | 2018.03.07 |