기본 개념 문제 풀이
- 파이썬의 문자열 인코딩: UTF-8 사용
- 하이퍼텍스트
- 인터넷의 개념
- 인터넷의 구조
- TCP/IP의 정의와 역할
- 소켓
- 패킷
- 쿠키와 세션
- 쿠키와 세션의 차이점 (저장위치, 보안, Lifecycle, 속도)
API(Application Programming Interface)
- 프로그램들이 서로 소통하는 방법
- API 를 이용한 지도기반시각화에 관해 자세히 공부
크롤링(Crawling)
- find(), findAll()함수
BeautifulSoup객체로 만든 뒤 <p>
태그 항목을 찾는 코드는 다음과 같다.
soup = BeautifulSoup(html, 'html.parser')
soup.findAll({'p'})
-
크롤링하기 좋은 사이트: 청와대 국민청원
-
환율 가져오기 (노드)
- 미션: ###로 표시된 공간 채우기 (크롤링할 사이트: 네이버증권)
from bs4 import BeautifulSoup
import requests
url = 'https://m.stock.naver.com/marketindex/index.nhn'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
country = []
country_1 = soup.findAll('###')
country_2 = soup.findAll('###', {'###':'###'})
for c in country_1:
country.append(c.text)
for c in country_2:
country.append(c.text)
country.remove('코스콤')
country.remove('에프앤가이드')
country.remove('레피니티브')
country.remove('이데일리')
country.remove('모닝스타')
country.remove('제로인')
country.remove('한국예탁결제원')
country.remove('IR큐더스')
country.remove('지속가능발전소')
price = []
price_0 = soup.findAll('###', {"###":"###"})
for p in price_0:
price.append(p.text)
import pandas as pd
data = {}
for i in range(len(country)):
data[country[i]] = price[i]
pd.Series(data)
- 참고 사항
- f12를 누르기 ->
shift+ctrl+c
를 누르고 원하는 정보를 누르면 해당 코드를 보여준다.
ctrl+F를 눌러서 검색하면 위치를 찾을 수 있다.
- country1는 위에 노출된 나라(strong에 묶여 있음), country2는 아래에 있는 나라(span 에 묶여 있음)이고 다른 항목에 묶여 있어서 다른 변수로 설정해 주었다.
- 지워주어야 하는 나라는 '컨텐츠 제공업체'에 포함되어 있고, 'strong'에 속해 있다. strong 항목에서 국가만 뽑아내는 인덱스가 없기 때문에 strong 항목을 불러온 후 해당 업체를 지워주어야 한다.