検索結果からURL、タイトル、H2タグを取り出す方法2021年1月28日Python学習Python学習【365日チャレンジ!】352日目のマスターU(@Udemy11)です。国会議員って、あんまり危機感ないのか、それともただのバカなのか、国民の代表という感覚がない人が多いようですね。夜遅くまで飲みにいったり、国会中に居眠りしたり、これだけメディアに攻撃される世の中になっているのに、国民に見られているとは思っていないようです。そんな国会議員に何かを期待している人っているんでしょうか?アンガーマネジメントの考え方の一つに、自分には変えることができなくて、あまり影響のない事柄に関しては、無視するか関わらないようにするというのがありますが、国会議員の行動は変えることはできないし、国会の居眠りも自分自身には関係ないので、関わらなければ怒りも起きませんので、極力、メディアを見ないというのも、怒りを抑える一つの方法には違いありません。一定期間、インターネットを含めたメディア絶ちをしてみるのもストレスがたまらなくていいかもしれませんね。それでは今日も、Python学習を始めましょう。GitHub】を学習しました。最初はわけがわからないまま作業を進めましたが、課題をこなすうちになんとなく何をやっているのかわかるようになりました。いってもGitとGitHubについての必要最小限の知識が必要ですので、本やWebでGitとGitHubのことを学習しておきましょう。昨日の学習内容については、こちらの記事をごらんください。Labで学習しましょうhttps://udemyfun.com/use-github-learning-labPython学習【365日チャレンジ!】351日目のマスターU(@Udemy11)です。ここ数日はちょっと暖かい日が続いているので、ついつい釣りに行きたくなってしまいます。釣りに行きたい気持ちが強くなってくると、Python学習の継続が危うくなっちゃいます。あと2週間ほどでゴールなので、ここで挫折するわけにはいきません。3月までは釣りに行かないぞ!と気持ちを引き締めて、Python学習に集中したいと思います。それでは今日も、Python学習を始めましょう。昨日の復習昨日は、GitHubアカウントをとPycharmに連携してみました。GitHub...今日は、GitHubから一旦離れて、先日作成していたscrape_t_u.pyのコードをカスタマイズして、Google検索結果ページの1ページめから、URL、タイトル、H2タグを抽出するコードを書いていきます。完成コードとりあえず、最初に完成したコードを記述しておきます。title_results.append('取得できませんでした。list_h2.append('取得できませんでした。list_datas.append(list_data)print(list_datas)h2を抜き出せばいいだけなので、最初は単純にURLやTITLEと同じようなコードで、find()でh2をしてすればいいだけだと思っていました。考えてみると、h2タグは、1つだけしかないtitleと違って、いくつも存在するので、コードを変える必要があることに気づきました。そこからいろいろと考えて、最終的にこのコードになりましたが、あまりきれいなコードとは言えませんね。パーツに分けてコードを見ていこうと思います。Google検索結果からURLを取得するこれまでと同じように、Google検索結果からURLを取得するところまでは同じで、検索するキーワードをinput()で取得するようにしています。url_results.append(urllib.parse.unquote(u_result))タイトルとH3タグを取得するタイトルとH3タグを取得するコードは、それぞれにtry-exceptを使っています。title_results.append('取得できませんでした。list_h2.append('取得できませんでした。')最初にタイトルを入れる空のリストtitle_resultsに加え、空のリストlist_h2を定義しています。19行目から、先に取得したURLを元にデータを抽出するforループのコードになっていますが、20行目と21行目でURLからBeautifulSoupで中身を解析できるデータに変換しています。23行目から27行目でタイトルを抜き出して、空のリストtitle_resultsに代入します。29行目から36行目でh2を抽出しますが、find_allですべてのh2タグを抽出してリストになっているので、そのままではテキストを抽出できません。一つ一つテキストを抽出するには、新しいリストbase_h2を作って抽出したh2のテキストを代入していき、そのリストをlist_h2に追加する必要がありました。最後は、抽出したそれぞれのリストを合わせて出力します。list_datas.append(list_data)print(list_datas)空のリストlist_datasを作成し、zip()を使って、辞書型データにしたものをリストlist_datasに入れていきます。ポイントは、URLとTITLEとH2のリストのインデックス数が同じというところです。titleもh2も、先に抽出したURLにアクセスして取得しているデータなので、リストと文字列の違いはあるものの、インデックス数は、抽出したURLと同じ数になっています。最後の44行目でlist_datasを表示しています。まとめほんとに簡単にできるなーと安易に考えていたのですが、複数のリストが入ったリストにする時点でかなり時間を取られたうえ、抽出した3つのリストを一つにまとめる時点でもかなり時間がかかってしまいました。1つのURLに1つのタイトルに対してH2はいくつもあるので、このあたりの処理の仕方がポイントでした。経験値を積み上げながら、引き出しを増やしていこうと思います。Udemyがセールをしているかどうかは、こちら...【Python】模範的な対話アプリケーションの構造解説(MVCモデル)Python学習【365日チャレンジ!】109日目のマスターU(@Udemy11)です。なにげに玄関を眺めていると、アシナガバチがポストに入って...【Python】マルチスレッドとマルチプロセスについてPython学習【365日チャレンジ!】203日目のマスターU(@Udemy11)です。9月になって少しは過ごしやすくなるのかと思いきや、まだま...【Python】簡単な対話アプリケーションの作成Vol.7Python学習【365日チャレンジ!】108日目のマスターU(@Udemy11)です。ホットケーキミックスが品薄になっていたらしですが、大量の...【Python】インフラの仮想環境を構築するイメージを理解しようPython学習【365日チャレンジ!】239日目のマスターU(@Udemy11)です。Keysのキー割り当てにハマった話Googleスプレッドシートの使い方講座Anacondaのアンインストールからの再インストールrequestsを使って仮想通貨のデータを取得Python学習【365日チャレンジ】を振り返ってみます。(2)Amazonのアソシエイトとして、当メディアは適格販売により収入を得ています。