Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

Pythonでスクレイピングする | youtube動画のヒット数を調べる

BeautifulSoup

images

題名のとおり。以前から興味を持っていたスクレイピングを試してみました。

結構簡単。

今回は、youtubeの検索結果のヒット数が知りたかった。いちいち手で打ってしらべるのが面倒だったので、Pythonでやってみる。Webページをコードからいじるのは楽しいです。

図1

URLはこうなっている

https://www.youtube.com/results?search_query=lock+dance

"search_query="の後を変更すればいいわけだ。

コードはこうなった。

試したコード

# -*- coding: utf-8 -*-
import urllib2
from bs4 import BeautifulSoup

# 検索先
youtube_url = 'https://www.youtube.com/results?search_query='

# 検索ワード格納用バッファ
search_querys = []
search_querys.append('dance')
search_querys.append('ダンス')
search_querys.append('ヒップホップダンス')
search_querys.append('ヒップホップ+ダンス')
search_querys.append('hiphopdance')
search_querys.append('hiphop+dance')
search_querys.append('lockdance')
search_querys.append('lock+dance')
search_querys.append('housedance')
search_querys.append('house+dance')
search_querys.append('breakdance')
search_querys.append('break+dance')
search_querys.append('breaking')

# 検索結果格納用バッファ
result = []
for search_query in search_querys:

# アクセス先を生成
URL = youtube_url + search_query

# htmlを取得
res = urllib2.urlopen(URL)

# 料理する
soup = BeautifulSoup(res.read())

# 予め取得したい要素を指定する
a = soup.find('p', attrs={'class':'num-results'})
b = a.find('strong')

# 結果の表示
print '--Result--'
print u'検索ワード = ' + search_query.decode('utf-8')
print u'約'+ b.string + u'件'

# 結果の格納
result_child = {search_query, b.string}
result.append(result_child)

print result

 

結果

--Result--
検索ワード = dance
約124,000,000件
--Result--
検索ワード = ダンス
約3,250,000件
--Result--
検索ワード = ヒップホップダンス
約4,630,000件
--Result--
検索ワード = ヒップホップ+ダンス
約4,620,000件
--Result--
検索ワード = hiphopdance
約176,000件
--Result--
検索ワード = hiphop+dance
約558,000件
--Result--
検索ワード = lockdance
約22,600件
--Result--
検索ワード = lock+dance
約507,000件
--Result--
検索ワード = housedance
約254,000件
--Result--
検索ワード = house+dance
約7,950,000件
--Result--
検索ワード = breakdance
約1,710,000件
--Result--
検索ワード = break+dance
約3,100,000件
--Result--
検索ワード = breaking
約15,300,000件

 

 

非常に参考になった資料

PythonによるWebスクレイピング入門

http://www.slideshare.net/checkpoint77/pythonweb-38279221

BeautifulSoupでスクレイピングのまとめ

http://taichino.com/programming/1531

Pythonらしいコードの書き方

http://kesin.hatenablog.com/entry/2013/05/12/004541

PythonによるWebスクレイピング

PythonによるWebスクレイピング

俺の彼女と幼なじみが修羅場すぎる12 (GA文庫)

俺の彼女と幼なじみが修羅場すぎる12 (GA文庫)