コメントするみなさんこんにちは。前回まででWebスクレイピング超初級は終了ですが、ただ情報を取るだけではつまらないので何か生活を便利にしたいなと考えをめぐらせておりました。私は某アイドルグループのファンで彼女たちの出演情報は漏れなくチェックしているつもりなのですが、たまーに見逃すことがあり、悲しい思いをしたことがあります。テレビの出演情報をPythonにチェックさせてLINEに通知するプログラムを作りました。[テレビ番組表]でキーワード検索していただくとわかるのですが検索後のURLには法則があることに気づきます。「ニュース」というキーワードで、地域設定を東京、地上波&BS放送&CS放送、にすると以下のようになります。https://tv.yahoo.co.jp/search/?q=ニュース&t=1%202%203&a=23&oa=1&s=1私のサイトではないので法則に関して深堀することはやめておきますが、q=のあとがキーワード、a=のあとが地域設定、s=のあとがページ番号のはずです。のちほどソースコードを掲載しますが皆さんのやりたいことに応じてカスタムしてください。(地域設定に関してはURLのソースに記載がありました)動的なURLであればブラウザを自動で動かすようなプログラムが必要ですが今回はある程度単純なのでこれまで勉強した知識だけで処理ができそうです。こんな感じのフローチャートでいきます。(見にくくてスミマセン)今回はHTTPリクエストが正常かどうかのチェックを追加しています。こちらを参考にさせていただきました。pocketsPythonでWebページを取得できたかどうかのエラーチェックと安全な中止の仕方https://tonari-it.com/python-response-status-code/プログラミング初心者&Windowsユーザー向けにPythonでWebスクレイピングをする方法についてお伝えしています。PythonでHTTPリクエストする際のエラーのチェックと安全な中止の仕方についてです。Notifyを利用して通知します。他は、検索数がゼロかどうかの判定、検索数からページ数を判断してループ処理、などを追加しています。URLのソースからあるタグの情報をゲットするにはChromeが大変便利です。ChromeでWebサイトを開いてから右クリック→「検証」を選ぶと、以下の画面が開きます。アイコンをクリックしてマウスを動かすと要素ごとのタグが自動で表示されていきます。こりゃ便利!ではさっそくソースコードを記載します。ファイルを閉じるqueryには皆さんが検索したいキーワード、URLは皆さんの状況に合わせてカスタムしてください。ブラウザで検索条件を変更したらURLも変わるはずです。地域設定:東京9~21行の部分、HTTPリクエストのステータスコードが200以外であればLINEに通知して処理を終了します。LINEの処理部分にあるアクセストークンはご自分の環境で取得したものを張り付けてください。次にキーワード検索数を取得します。検索数がゼロであれば、29行のpには0でなくNoneが入ります。#以降の処理には進まず終了#検索数が1以上ならば処理継続else:passここから少しややこしいです。検索数が1~10件ならばページ数は1、11~20件ならばページ数は2、というように増えていきます。検索数を取得してanswerに代入し、カウンタとして使用します。ループの最後でanswerから10を引いています。検索数が30件ならば、1回目の処理はanswer=30で1ページ目を取得2回目の処理はanswer=20で2ページ目を取得3回目の処理はanswer=10で3ページ目を取得4回目の処理はanswer=0でループから抜けるとなります。地域設定:東京URLは最後の部分、s=”+str(page)としています。1ページ目はs=1ですが、2ページ目はs=2ではなく、s=11が正解で、3ページ目はs=21、というように増えていくので、ループの最後に変数pageに10を足しています。ループの最後でsleepを入れることでサーバへの負荷を軽減しています。ループを抜けたあとは74、75行で取得した情報をまとめたリストを作成、77行以降は前回からお得意の差集合を使います。92行以降はLINEへの通知部分ですが、差集合で得られた「新しい番組情報」のデータをリストに変換しただけでは順番がバラバラなので.sort()で文字列順で並べ直しています。Notifyの通知もfor文で繰り返していますが、これはLINEに一度で送ることができる文字列に制限があるため、あえて1番組ずつ送るようにしました。最後に今回のデータをテキストファイルに保存して終了です。pyファイルと同じフォルダにhogehoge.txtがないとエラーになりますので注意してくださいね。Notifyはグループでも使用できるということを記載しました。Notifyの2人だけでもグループを作ることができるので、処理ごとにグループを作れば情報が整理できてとても便利です。このAPI、ずっと使えるといいなぁ。これで完成としたいと思います。今回のプログラムを定期的に自動実行すれば素晴らしいオタクライフが待っているはずです。次は何をやろうかな~。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。検索:プロフィールkicky(キッキー)と申します。アラサーではじめてプログラミングを学んでいるしがないサラリーマンです。