入力フォームから値を取得して、Google検索結果をスプレッドシートに書き出すプログラム入力フォームから値を取得して、Google検索結果をスプレッドシートに書き出すプログラム2021年2月7日Python学習Python学習【365日チャレンジ!】362日目のマスターU(@Udemy11)です。ここに来て、Amazonプライムからの誘惑が強くなってきています。前まではAmazonプライムビデオの魅力的な映画はほとんど見ていたのですが、最近リストが更新されて、見てみたいと思う作品がラインナップされています。歴史好きには時間をかけても見たくなるような作品である長編中国史の大作で、95話もある【三国志】がプライムに登場しているので、見るのを我慢するのが大変です。1話40分位あるので、単純に3800分(634時間)、24時間見続けても半月以上かかってしまう計算です。慌てて見る必要はないので、Python学習365日チャレンジを達成して、少し落ち着いてから、ゆっくり3ヶ月くらいかけて見ようと思っています。魅力的な作品がたくさんあるので、映画好きな人はぜひAmazonプライムを試してみてください。Amazonプライムを体験!それでは、今日もPython学習をはじめましょう。昨日は、Google検索の結果からPythonで抽出したURLとタイトルをGoogleスプレッドシートに書き込むためのプログラムを書きました。一昨日は、鬼滅の刃のせいで、寝不足でさぽってしまったような内容でしたが、昨日はしっかりしたコードを書けたのではないかと思います。いっても、これまでに学習してきたBeautifulSoupを使ったWebスクレイピングとGoogleスプレッドシートの操作を組み合わせただけなので、そんなにハマることろはありませんでした。詳細については、こちらの記事をごらんください。Udemyのセールを活用してほしかったあのスキルを手に入れよう!【非公式】2021.02.06Google検索結果から抽出したURLとタイトルをGoogleスプレッドシートに書き込むプロ...https://udemyfun.com/python-file-scrape-google-searchPython学習【365日チャレンジ!】361日目のマスターU(@Udemy11)です。最近寒くって運動できないうえ、食べるものがおいしくって、右肩上がりに体重が増えてきてこまっています。本来なら、気持ちを引き締めて、食べる量を減らして、運動もスタートしたいところなのですが、どうも気持ちがダイエットの方に向かわないんですよね。そんなときに、今更ですが、オメガ3脂肪酸がたくさん含まれる【しそ油(エゴマ油)】を継続して摂取している人から、血液の値が良くなったとか、同じように摂取している人の乳がんがなくなったという話を...今日は、さらにTkinterを使って、入力フォームから【スプレッドシートキー】と【秘密鍵ファイル名】、【検索キーワード】を取得して、検索結果をGoogleスプレッドシートに書き出すプログラムを作成します。入力フォーム(interface.py)まず、Tkinterを使った入力フォームのコードですが、以前作成した【スプレッドシートキー】と【秘密鍵ファイル名】、【数値】を入力して、スプレッドシートに入力された数値を元にした計算結果を出力するコードを再利用します。Udemyのセールを活用してほしかったあのスキルを手に入れよう!【非公式】2021.02.01シートキーと秘密キーファイルを入力してスプレッドシートで計算するアプリhttps://udemyfun.com/auto-calculation-app/#keni_toc_2Python学習【365日チャレンジ!】356日目のマスターU(@Udemy11)です。Python学習365日チャレンジ最後の月になる2月に突入し、残り日数も今日を入れて、あと10日で、カウントダウンできるところまでやってきました!途中、何度か挫折しそうになる時期はありましたが、なんとか切り抜けて、Python学習を継続することができています。ここまで継続できたのは、私の人生の中ではじめてなので、あらためてよく続いているよな〜と自分で自分に感心してしまいます。いってもあと10日、気を抜かずにGoalしたいと思います。Application(master=root)app.mainloop()変更したのは、ハイライトしている行の引数や値です。URLに変更しています。15行目で、テキストボックスの幅を広くして、18行目のラベルの名前を検索ワードに変更。25行目の関数名をsearchに変更して、検索キーワードを入れるので、keywordsに変更しました。あとは、46行目、47行目でボタンに表示する文字を抽出にして、クリック時のアクションにsearch()関数を引き当てています。このファイルを実行すると、次のような入力フォームが立ち上がります。続いて、3行目でインポートしているcontrol.pyのコードを見てみましょう。実行ファイル(control.py)control.pyも、入力フォームから取得した【秘密鍵ファイル名】や【スプレッドシートキー】を活用して、スプレッドシートにアクセスするコードや入力フォームから取得した【検索キーワード】を元にGoogle検索からURLとタイトルを取得してリストに保存するコード、スプレッドシートに取得したデータを書き込むコードは、以前作成した下記の記事のコードとほぼ一緒です。Udemyのセールを活用してほしかったあのスキルを手に入れよう!【非公式】2021.02.06Google検索結果から抽出したURLとタイトルをGoogleスプレッドシートに書き込むプロ...https://udemyfun.com/python-file-scrape-google-searchPython学習【365日チャレンジ!】361日目のマスターU(@Udemy11)です。最近寒くって運動できないうえ、食べるものがおいしくって、右肩上がりに体重が増えてきてこまっています。本来なら、気持ちを引き締めて、食べる量を減らして、運動もスタートしたいところなのですが、どうも気持ちがダイエットの方に向かわないんですよね。そんなときに、今更ですが、オメガ3脂肪酸がたくさん含まれる【しそ油(エゴマ油)】を継続して摂取している人から、血液の値が良くなったとか、同じように摂取している人の乳がんがなくなったという話を...他の部分も含めて全体のコードを見てみましょう。search_soup.find('title')title_results.append(titles.text)except:print('取得できませんでした。'__main__':main()9行目のmain関数の引数はinterface.pyの変更に合わせて変更し、引数名をそのまま使えるので、引数を代入して定義していた不要な変数の行を削除しました。10〜13行目が、入力フォームに入力された【秘密鍵ファイル名】と【スプレッドシートキー】を使ってスプレッドシートを操作できる状態にするコードです。15〜31行目が入力フォームに入力された【検索キーワード】からGoogle検索をして、その結果からタイトルとURLをリストに保存するコードです。33〜43行目は、【検索キーワード】をA2に入力し、リストに入っているタイトルをB2〜B11に、URLをC2〜C11に入力するコードです。最後の2行は、このファイルがインポートされたときに関数が実行されないように、いつも記述する定番のコードとなります。動作確認interface.pyを実行すると、入力フォームが立ち上がり、【スプレッドシートキー】と【秘密鍵ファイル名】、【検索キーワード】を入力して、【抽出】ボタンをクリックすると、control.pyのmain()関数が実行されて、Googleスプレッドシートに抽出したタイトルとURLが入力されます。今回も実際の動きを動画にしました。動画の最後でシークレットモードのChromeを使って検索キーワードで検索した結果と抽出されたタイトルを見比べてみましたが、同じ結果が返されているのがわかるかと思います。まとめこれまで実践してきた内容を組み合わせて作ったプログラムなので、比較的スムーズにコードが出来上がりましたが、実は超単純な間違いをして、何がおかしいのか理解するまでに結構時間がかかってしまいました。間違いに気づいたのは、エラーのコードをきちんと見たからですが、スプレッドシートキーのテキストボックスに秘密鍵ファイル名を入力して、秘密鍵ファイル名のテキストボックスにスプレッドシートキーを入れてしまっていました。ファイルが見つからないというエラーだったので、エラーをしっかり確認したところ、ファイル名のところに入力したスプレッドシートキーが表示されていたので、この間違いに気づくことができました。この間違いに気づくまでに、何がおかしいのかわからず、コードを見直していると、main関数で受け取る引数を一旦変数に代入してその変数を使っているコードがあり、引数名をそのまま活用できることに気づき、無駄なコードを削除することができました。コードを見直すってことは重要ですね。Pythonのコードに慣れてきたものの、まだまだ実践時間が足りないので、時間のあるときはコードを書くように意識しようと思います。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のアソシエイトとして、当メディアは適格販売により収入を得ています。