Closed3
python 映画情報サイトの検索機能を使って色々したい③ コンテンツ情報をスクレイピングしてリスト化
目標
- 参考サイトからコンテンツ情報をスクレイピングしてリスト化する
- 各タイトルを参考サイトの検索機能にかける
- 各タイトルの視聴方法(ストリーミングサービス情報)を取得する
※ 無駄が多そう
1. 参考サイトからコンテンツ情報をスクレイピングしてリスト化する
- 1screenから希望のカテゴリを選択する。
- 「もっと見る」ボタンの動作を確認
- 総作品数が「y/x 作品」と表示されている。(例:50 / 6351 作品)
- 「もっと見る」ボタンを押した後、URLが変わるか確認する
→ URLの末尾が変わることを確認(ページが進むごとにURL末尾の数字が上がる)
→ URLが変わらない設計だと面倒になるところだった…
# 「もっと見る」ボタンを押す前のURL # 末尾が "2022" https://1screen.tv/jp/category/movie/genre/comedy?isUnlimited=true&isRentable=true&isPurchasable=true&releaseYearAfter=1900&releaseYearBefore=2022
# 「もっと見る」ボタンを押した後のURL # 末尾が "2022&page=2" https://1screen.tv/jp/category/movie/genre/comedy?isUnlimited=true&isRentable=true&isPurchasable=true&releaseYearAfter=1900&releaseYearBefore=2022&page=2
- ページ数を確認するために、作品数を取得する
- 何ページあるのか分かれば(最後のページ数が分かれば)、「コメディー」カテゴリのURLが全て分かる、ということになる。
- y / x 作品
- 1ページ目:50 / 6351 作品
- 2ページ目:100 / 6351 作品
- 3ページ目:150 / 6351 作品
- 1ページ目の「50 / 6351」の数字を取る
- 何ページあるのか分かれば(最後のページ数が分かれば)、「コメディー」カテゴリのURLが全て分かる、ということになる。
- 取得したページ数からURLのリストを作る
- URLのリストをforループで回し、一つ一つのページを見に行き、タイトルを取得する
情報取得のための関数を設計する
- 関数の中身の説明を書くことを「ドキュメントを書く」という
- ドキュメントに書くこと
- 何をする関数なのか
- 引数の説明
- 返す値の説明
- 最初のURLにアクセスしコンテンツを取得する関数
def get_page(URL): """ URLにアクセスしコンテンツを取得する URL: 文字列、1screen.tvからの1ページのURL 返り値: コンテンツソース(コンテンツの中身) """ pass
- ページ数を取得する関数
def get_contents_number(contents): """ get_pageから取得したソースから作品総数を取る 「もっと見る」ボタンの下にある「m / n 作品数」 部分の「n」 contents: 文字列、もしくは、BeautifulSoupのオブジェクト、get_pageの返り値:整数値n """ pass
- URLリストをforループで回して1ページずつスクレイピングする関数
このスクラップは2022/11/18にクローズされました