SW
Beautifulsoup 본문
In [73]:
from IPython.core.display import display, HTML
display(HTML("<style> .container{width:90% !important;}</style>"))
In [33]:
# 서버에 접속해서 데이터를 가져오는 모듈
!pip3 install requests
In [41]:
# 서버에서 가져온 데이터를 html형식으로 변경
!pip3 install beautifulsoup4
In [48]:
!pip install beautifulsoup4
In [56]:
# 1. 네이버에 접속해서 소스코드를 가져온다.
# 1-1. 접속하려면 requests 필요하다.
import requests
from bs4 import BeautifulSoup
url = "https://www.naver.com/"
req = requests.get(url) #접속해서 받아온 데이터, 접속 코드 등
if req.status_code == requests.codes.ok:
print("접속 성공")
# 다음에 할일들
# print(req.text)
# 서버에서 받아온 데이터는 text 형태이다.
# html 형태로 파싱(parsing)한다.
html = BeautifulSoup(req.text, "html.parser") # bs4 이용
span_tags = html.select('span') # span태그들을 span_tags에 넣음
for tag in span_tags:
print(tag.text) # text만 추출해서 출력
#html.select_one()
else:
print("접속실패")
# 2. 소스코드를 해석해서 실시간 급등 검색어 들을 가져온다.
# 3. 검색어를 화면에 출력한다.
In [65]:
#BMI - 체중(kg)을 키(m)의 제곱으로 나누면
# 1. 체중을 입력 받는다.
weight = float(input("체중 : "))
# 2. 키를 입력 받는다.
height = float(input("키 : "))
# 3. bmi를 계산한다.
bmi = weight / ((height/100)**2)
# 4. bmi를 출력한다.
print(bmi)
if bmi < 18.5:
print("저체중")
elif bmi < 23:
print("정상체중")
else:
print("과체중")
# 오류의 종류
# 1. 문법 오류
# 전체 오류 80%
# 2. 런타임 오류
# 3. 논리 오류
In [72]:
movie1_name=input('영화 제목을 검색하시오 : ')
import requests #소스코드를 가져오기위해 requests라는 라이브러리를 이용ㅎ나다.
from bs4 import BeautifulSoup #소스코드를 가져오면 데이터가text형식이라 이걸 html로 바꿔줘야한다,
url="https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&query=" + movie1_name
req = requests.get(url) #영화url을 가져오고 그 url안의 페이지소스를 req변수에 저장한다
if req.status_code == requests.codes.ok: #변수를 잘 가져왔다면성공
print("접속 성공")
html = BeautifulSoup(req.text,"html.parser") #가져온 데이터를 html형식으로 바꾼다,
span_tags=html.select('a._sp_each_title') #가져온 데이터 안에서 title이라고 태그가 달려있는것을 가져와서 변수에 저장한다
for tag in span_tags: #title태그를 가진 애들의 개수만큼
print(tag.text) #그 내용을 다 출력한다.
else:
print("접속 실패")
In [ ]:
'대학교 > Data' 카테고리의 다른 글
matplotlib (0) | 2020.02.01 |
---|---|
Kaggle [Titanic Data Analysis] (0) | 2020.02.01 |
json (0) | 2020.01.30 |
pandas (0) | 2020.01.30 |
openpyxl (0) | 2020.01.30 |
Comments