Yahoo映画から近日公開映画名をスクレイピングする


スクレイピングに興味あったのでやってみた。
urllibでスクレイピング対象のURLを開く、BeautifulSoupでHTMLから欲しい情報を取得。


import urllib.request
from bs4 import BeautifulSoup

def scraping():
    # アクセスするURL
    url = "https://movies.yahoo.co.jp/movie/soon/"
    # htmlの取得
    html = urllib.request.urlopen(url)
    bs = BeautifulSoup(html, "html.parser")

    # 各映画の情報
    movies = bs.findAll("div", {"class":"thumbnail__caption"})

    # 出力
    for movie in movies:
        title = movie.find("a").string
        date = movie.find("span", {"class":"label bgcolor-B"}).string
        print(title, date)

if __name__ == "__main__":
    scraping()

Python3じゃないとfrom bs4 import BeautifulSoupでエラーでるし、
Python3だとimport urllib2ではなくimport urllib.requestにしないとだめっぽい。

実行するとこんなかんじ。

犬鳴村 2020年2月7日公開
ヲタクに恋は難しい 2020年2月7日公開
アントラム 史上最も呪われた映画 2020年2月7日公開
ハスラーズ 2020年2月7日公開
ザ・ピーナッツバター・ファルコン 2020年2月7日公開
グッドライアー 偽りのゲーム 2020年2月7日公開
37セカンズ 2020年2月7日公開
ファンシー 2020年2月7日公開
静かな雨 2020年2月7日公開
侍の名のもとに~野球日本代表 侍ジャパンの800日~ 2020年2月7日公開
アンストッパブル 2020年2月7日公開
グリンゴ/最強の悪運男 2020年2月7日公開
ロニートとエスティ 彼女たちの選択 2020年2月7日公開
スキンウォーカー 2020年2月7日公開
プロジェクト・グーテンベルク 贋札王 2020年2月7日公開
DRONE/ドローン 2020年2月7日公開

スクレイピング、思ったより取得するだけならかんたんだった。
今後は概要を取りたい。ページをまたがないと。

メモ

今回Python初めて触ったのでif __name__ == "__main__":こいつが何者か謎だった…

以下がとてもわかりやすかった。感謝。
https://qiita.com/homines22/items/edf7a2309f3421723550