반응형

파이썬 기본 문법 - 문자열 분리 & 합치기 - split(), join()

 

 

문자열 분리 split()

괄호 안에 아무 값도 넣어 주지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나누어 줍니다. 괄호 안에 특정 값이 있을 경우에는 괄호 안의 값을 구분자로 해서 문자열을 나누어 줍니다. 이렇게 나눈 값은 리스트에 하나씩 들어가게 됩니다. 

 

아래 예제를 보겠습니다.

str1 = 'it is a good day'
data1 = str1.split(' ')

data2 = '2021/08/30'.split('/')

print(type(data1))
print(data1)
print(type(data2))
print(data2)

문자열 합치기(삽입) join()

문자열뿐만 아니라 리스트나 튜플도 입력으로 사용할 수 있습니다.

따옴표 안에 문자들을 분리할 문자열을 삽입할 수 있습니다.

 

아래 예제를 보겠습니다.

data1 = ['green',  'blue', 'yellow']
print(''.join(data1))
print('-'.join(data1))

print('/'.join('hello'))

 

반응형
반응형

파이썬 데이터 분석 / set 집합 함수 - 합집합, 차집합, 교집합, 대칭차

 

Set 함수란

집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형입니다. 

 

대칭차란

둘 중 한 집합에는 속하지만 둘 모두에는 속하지는 않는 원소들의 집합입니다. 

 

합집합, 차집합, 교집합, 대칭차

합집합 set.union
차집합 set.difference
교집합 set.intersection
대칭차 set.symmetric_difference

예제

sdata1 = {1,2,3,4}
sdata2 = {3,4,5,6}

print(set.union(sdata1, sdata2))
print(set.intersection(sdata1, sdata2))
print(set.difference(sdata1, sdata2))
print(set.symmetric_difference(sdata1, sdata2))

반응형
반응형

파이썬 웹 크롤링 / 네이버 현재 상영영화 정보 가져오기

 

네이버 Html 코드 분석

아래 링크에 들어가면 네이버 영화 정보를 볼 수 있습니다.

개발자 도구(F12)로 영화 검색어 순위에 대한 내용을 따라 들어가 보면 

lst_detail_t1 클래스 안에 현재 상영영화 정보가 있는 것을 알 수 있습니다. 

이 클래스 안의 영화 제목 정보를 가져와 출력하겠습니다. 

https://movie.naver.com/movie/running/current.naver

 

전체 코드

현재 상영영화 정보가 100개가 넘기 때문에 10개만 출력하도록 하였습니다. 

import urllib.request
from bs4 import BeautifulSoup

url = "https://movie.naver.com/movie/running/current.naver"
soup = BeautifulSoup(urllib.request.urlopen(url).read(), "html.parser")

ul = soup.find("ul", class_="lst_detail_t1").find_all("dt", class_="tit")
print(type(ul))

for i, title in enumerate(ul):
    print(i+1, ") ", title.get_text())
    if i+1 == 10:
        break

아래와 같이 출력되는 것을 볼 수 있습니다.

반응형
반응형

파이썬 웹 크롤링 / 네이버 영화 인기검색어 순위 가져오기

 

 

BeautifulSoup를 이용해 네이버 영화 인기검색어 순위를 가져오도록 하겠습니다. 

 

네이버 Html 코드 분석

아래 링크에 들어가면 네이버 영화 정보를 볼 수 있습니다. 

개발자 도구(F12)로 영화 검색어 순위에 대한 내용을 따라 들어가 보면 

keyword_obj first_child 클래스 안의 영화 인기검색어에 대한 정보가 있는 것을 알 수 있습니다. 

이 클래스 안의 영화 제목 정보를 가져와 출력해 보도록 하겠습니다. 

https://movie.naver.com/movie/running/current.naver

 

BeautifulSoup의 find 코드

keyword_obj first_child 클래스를 우선 찾고. 그 하위의 rank_tx에 영화 제목 정보가 있는 것을 알 수 있습니다. 

순위에 있는 모든 영화 제목을 가져와야 하기 때문에 find_all 함수를 사용합니다. 

ul = soup.find("div", class_="keyword_obj first_child").find_all("p", class_="rank_tx")

 

전체 코드

import urllib.request
from bs4 import BeautifulSoup

url = "https://movie.naver.com/movie/running/current.naver"
soup = BeautifulSoup(urllib.request.urlopen(url).read(), "html.parser")

ul = soup.find("div", class_="keyword_obj first_child").find_all("p", class_="rank_tx")
print(type(ul))
for i, title in enumerate(ul):
    print(i+1, "위 : " , title.get_text())

반응형

+ Recent posts