2018.07.26みなさん、こんにちは!うえはら(@tifoso_str)です。【JavaScriptで動作するWebページを色々な言語でスクレイピング】するシリーズの第六弾です。Cloudを利用してWebページをスクレイピング」しました。Cloudを利用してWebページをスクレイピング「JavaScriptで動作するWebページ(動的サイト)を色々な言語でスクレイピング」することをシリーズでお伝えしています。Cloudでスクレイピングします!tonari-it.com2018.07.18また、第二弾では「VBAでIEを操作してJavaScriptで動作するWebページをスクレイピング」しました。Scriptでスクレイピング出来れば、実務では事足りるもしれませんが、プログラムの世界ではPythonの人気が上がってきています。非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明しますPythonを学ぶことは、非エンジニアのプログラミング初心者、一般のビジネスマン、Windowsユーザーにとって有益です。今回はPythonとは何か?そしてそれを学ぶメリットについてお伝えしていきます。tonari-it.com2017.08.10そこで今回より、PythonでJavaScriptで動作するWebサイトをスクレイピングする方法を紹介します。Pythonでスクレイピングする方法は別連載でもお伝えしていますので、併せて確認お願いします。Pythonでスクレイピングをする最初の一歩、Webページを丸ごと取得する方法Windowsを使う初心者向けにPythonの情報を提供しています。今回は、Pythonでスクレイピングをする最初の一歩、requestsモジュールのget関数でWebページを丸ごと取得する方法です。Cloudを利用してWebページをスクレイピング」していきます。前回までのおさらいPhantomJsCloudにアクセスするURLの作成リクエストのJSON変換についてURIエンコードについてPhantomJsCloudにHTTPリクエストするまとめ連載目次:JavaScriptで動作するWebページを色々な言語でスクレイピング前回までのおさらい前回までの分を簡単におさらいします。Cloudですが、これはクラウドで動作するヘッドレスブラウザです。簡単に言うと、スクレイピングしたいURLをわたすと、JavaScriptが実行された後のHTMLドキュメントを返してくれるサービスです。Cloudを利用してWebページをスクレイピングするスクリプトは下記のようになります。source.match(myRegexp);Logger.log(waterRate[1]);}今回のシリーズでは、沖縄県のダムの貯水率をスクレイピングで取得しています。結果は下記のようになります。これと同じ事をPythonでやってみます。CloudにアクセスするURLは下記のようになります。http(s)://PhantomJsCloud.com/api/browser/v2/[YOUR-KEY]/?request=[REQUEST-JSON][YOUR-KEY]はApiKeyを、[REQUEST-JSON]にはスクレイピングしたいURL等のオプションを指定すればよかったですね。[REQUEST-JSON]はJSON形式をURIエンコードする必要がありました。リクエストのJSON変換についてPythonでJSON形式を扱うときは標準ライブラリのJSONモジュールを使います。JSONモジュールを使用することで、JSON形式とPythonの辞書型を簡単に変換できます。今回はPythonの辞書型からJSON形式へ変換するので、json.dumps関数を利用します。json.dumps(辞書型)実際のコードは下記のようになります。#JSONパースprint(payload)実行すると下記のようにJSON形式で表示されます。URIエンコードについて次は、JSON形式のリクエスト部分をURIエンコードします。PythonでURL関係を操作するときは、標準ライブラリのurllib.parseモジュールを使います。今回はURIエンコードするのにurllib.parse.quote関数を利用します。urllib.parse.quote(文字列,オプション)実際のコードは下記のようになります。‘/’」となっていて、「/」はエンコードしないという意味です。Cloudでは「/」もエンコードする必要があるので、今回はオプションで「/」をはずしています。オプション有りと無しで実行した結果が下記となります。オプション指定した上の方は「/」が「%2F」に変換されています。PhantomJsCloudにHTTPリクエストするPythonでHTTPリクエストするときには、requestsモジュールを使うと簡単にできます。requestsモジュールは標準ライブラリではないので、インストールする必要があります。詳細は下記の記事をご参照下さい。Pythonでスクレイピングをする最初の一歩、Webページを丸ごと取得する方法Windowsを使う初心者向けにPythonの情報を提供しています。今回は、Pythonでスクレイピングをする最初の一歩、requestsモジュールのget関数でWebページを丸ごと取得する方法です。tonari-it.com2017.10.18PythonでGetリクエストをするときは、requests.get関数を利用します。requests.get(URL)コードは下記のようになります。#GETリクエストprint(response.text)最後の行は結果を確認しています。requests.get関数の戻り値のResponseオブジェクトからデータを取り出すときは下記のようにします。Responseオブジェクト.text内容はよく分かりませんが、GASで実行したときと同じように、データは取得できました。Cloudを利用してWebページをスクレイピングしました。GASと同じように色々な関数があるので、Pythonでも同じような書き方で実行できますね。Soupモジュールを使います。「JavaScriptで動作するWebページ(動的サイト)を色々な言語でスクレイピング」することをシリーズでお伝えしています。PythonとPhantomJsCloudでJavaScriptで動作するWebページをスクレイピングしたデータをBeautifulSoupを使って解析します。tonari-it.com2018.08.02お楽しみに!連載目次:JavaScriptで動作するWebページを色々な言語でスクレイピングWebスクレイピングしていて、値が取得できないということはありませんか?そんな時は、Webサイトの表示にJavaScriptを利用しているからです。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。初心者向けPythonの基本中の基本をフォルダ作成ツールを作りながら学ぶシリーズです。Pythonで簡単に文字列から改行コードを取り除くstripメソッドの使い方です。スペースやタブも除去できますよ。2017.08.23PythonPythonでWebページを取得できたかどうかのエラーチェックと安全な中止の仕方プログラミング初心者&Windowsユーザー向けにPythonでWebスクレイピングをする方法についてお伝えしています。PythonでHTTPリクエストする際のエラーのチェックと安全な中止の仕方についてです。初心者かつWindowsユーザー向けにPythonでWebスクレイピングをする方法お伝えしております。今回は、PythonでWebページから特定のクラスを持つ要素をまとめて取得する方法です。NotebookでセルにMarkdown記法で入力する方法Python初心者のWindowsユーザー向けにAnacondaをベースにした開発環境についてお伝えしています。NotebookでセルにMarkdown記法で入力する方法をお伝えします。2019.09.23PythonPythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ初心者向けにフォルダ操作を題材としてPythonプログラミングの基本中の基本についてお伝えしています。今回はPythonでデータをまとめて取り扱うリストについてその基本とforループにより繰り返しついてです。非エンジニア&Windowsユーザーのためのお仕事へのPython活用法お伝えしております。今回は、Pythonの辞書とは何か、また辞書を使ったリストの値のカウントをする超簡単なスクリプトについてです。PMとくさんコメントありがとうございます。PhantomJsCloudのホームページを確認したのですが、私のほうでは開発終了という情報を見つけることができませんでした。Chromeのヘッドレスモードについては、情報ありがとうございます。以降の記事として前向きに検討させていただきます。PMCloudではなく本体です!もちろん本体の開発が止まっている生で、cloudもどうなるかわからないです。PMとくさん、返信ありがとうございます。状況や情報を注視して、必要に応じて記事の対応を検討したいと思います。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。