beautiful soup를 이용한 크롤링

youtube 사이트 정보를 읽어서 간단한 유튜브 동영상 뷰 사이트를 만들어 보려고 한다.
소스는 github  https://github.com/shsong97/kids-tv.git 에 있다.

beautiful soup를 이용한 크롤링을 해보자.
BeautifuleSoup 사이트에 가면 사용방법이 자세히 나와있다.

우선 다운로드를 하려면 커맨드 창에서 아래와 같이 입력한다.

pip install beautifulsoup4

내가 작성한 youtube 크롤링 방법은 아래의 소스를 받으면 된다.

https://gist.github.com/shsong97/f15d7e03135f018cacac


# -*- coding: utf-8 -*-
 
from bs4 import BeautifulSoup
import urllib
 
query = u'소피아'.encode('utf-8')
url = 'https://www.youtube.com/results?search_query=' + query
html_doc = urllib.urlopen(url)
soup = BeautifulSoup(html_doc)
links = soup.findAll('div', attrs={'class':'yt-lockup-dismissable'})
 
for link in links:
    #img = link.find('img')['src']
    img = link.find('div',attrs={'class':'video-thumb'}).find('img')
    try:
        if img['data-thumb'] != '':
            print img['data-thumb']
        else:
            print img['src']
    except:
        print img['src']

유튜브에서 검색을 해보면 url에 있는 것과 같이 검색이 되는데
여기서 우리가 검색할 단어만 query에 넣어주면 된다. 한글문제가 있어 encode함수를 통해 utf-8로 변환을 해준다.

기본적으로 url 정보를 넘겨서 html 문서를 받은 다음 BeautifulSoup에 넘겨주면 사용이 가능하다.

html_doc = urllib.urlopen(url)
soup = BeautifulSoup(html_doc)
그 다음은 html 문서를 분석해서 찾고 싶은 tag로 find, findall 함수를 이용해서 찾으면 된다.

댓글

이 블로그의 인기 게시물

dtsrun 실행하기

[MS SQL] SP수행 시간 및 작업빈도 확인

Slug가 뭘까?