なんでもアウトプットなんでもアウトプットパソコン関連で役に立った情報を発信しますトップ記事一覧ログ一覧2019-01-26【スクレイピング】正規表現を使用したスクレイピングスクレイピングスクレイピング準備記事http://hk-ryukyu.club/hideto/archives/770http://hk-ryukyu.club/hideto/archives/794関連記事http://hk-ryukyu.club/hideto/archives/811【やりたいこと】正規表現を使って、スクレイピングしてみたい!ここからが、本題のスクレイピングになります!そもそもスクレイピングってどういう意味なのでしょうか。スクレイピングとは、「削る」や「こすり落とす」といった英語の意味になります。あったものをスクレイピングすることで、欲しい部分だけを残すイメージです。前回行った、Webページの取得は、スクレイピングを行う元々のデータを取得するために行いました。次は、そのデータをスクレイピングすることで、必要なデータだけに加工するわけです。やって、必要なデータだけにするのでしょうか。方法は、いくつかありますが、今回は、正規表現によって、スクレイピングを行います。正規表現でのスクレイピングを簡単に説明すると、文字列のパターンを指定して、そのパターンに合った文字列のみを残す方法です。以上のことを、模式図で表すと下記のようになります。いうことで、本記事では、正規表現を使用したスクレイピングを行い、取得したページの記事タイトルと記事のURLを抜き出します。【10分でできる】正規表現をうまく書けるかがポイント!※ダウンロード時間は10分の中に含まれていません。取得したページの記事タイトルと記事のURLが、どのようにHTMLで表記されているか確認します。次に、スクレイピングを行うPythonスクリプトファイルを作成します。最後に、Pythonスクリプトファイルを実行し、必要な文字列を取得します。※下記の記事の内容を完了しているものとして、進めていきます。前回、取得したページを開きます。右クリックして、検証をクリックします。上記の画像を参考にすると、a要素の属性として記事URLと記事タイトルが存在することが分かります。この文字列を参考にして、スクリプトファイルを作成しましょう。前回ダウンロードしたファイルを開き、中身を変数htmlに格納する。f.read()re.findall()を使って、URLと記事タイトルが含まれるHTMLを取得する。re.DOTALL):記事のタイトルとURLは、a要素のhref属性とtitle属性からそれぞれ取得する。記事URLと記事タイトルが含まれる部分を大まかに取得。正規表現で「.*?」と記入されている部分は、どのような文字列とも合う(マッチ)ようにしています。1で確認した文字列を参考に、「re.findall(r’~~」を記入しています。上記のコードは、a要素のtitle属性まで取得しています。記事URLと記事タイトルを抜き出しています。「(.*?)」が2つあります。これは、group(1,2)と対応しています。group(1)には記事URLが、group(2)には、記事タイトルがあります。抜き出した記事URLと記事タイトルを表示させます。以上、コードの解説を簡単に解説しました。詳しく勉強したい方は、本記事の最後に記載されている参考図書をおすすめします。作成したスクリプトファイルを共有フォルダに移動させて、ゲストOSから実行させます。上記の画像のように、記事URLと記事タイトルが表示されていれば成功です。余計な部分も抜き出してしまいました(画像上部)何度もやり直したのですが、取り除くことができませんでした。画像が見づらい場合は、以下のリンク先に移動することをおすすめします。以下の書籍は、私がPythonスクレイピングを勉強するにあたって、使用した書籍です。「Python逆引き大全」は、秀和システムの技術書読み放題サービス「10×Eng」で読めます。最初の2週間は無料、それ以降は、月額900円で利用できます。unlimitedで読めます。https://www.amazon.co.jp/Pythonクローリング%EF%BC%86スクレイピング-―データ収集・解析のための実践開発ガイド―-加藤-耕太-ebook/dp/B01NGWKE0P/ref=sr_1_2?s=digital-text&ie=UTF8&qid=1547444558&sr=1-2&keywords=%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0https://www.amazon.co.jp/現場ですぐに使える%EF%BC%81-Pythonプログラミング逆引き大全-313の極意-金城俊哉-ebook/dp/B07CKW7HRT/ref=sr_1_12?s=digital-text&ie=UTF8&qid=1547444718&sr=1-12&keywords=Pythonhttps://www.amazon.co.jp/プログラミング超初心者が初心者になるためのPython入門%EF%BC%88%EF%BC%91%EF%BC%89-セットアップ・文字列・数値編-たっく-ebook/dp/B00SH9TZV6/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1547444851&sr=1-1&keywords=Python+%E8%B6%85%E5%88%9D%E5%BF%83%E8%80%85https://www.amazon.co.jp/プログラミング超初心者が初心者になるためのPython入門%EF%BC%88%EF%BC%92%EF%BC%89-リスト・タプル・ディクショナリ・if・-ループ編-たっく-ebook/dp/B00UTE7IVQ/ref=pd_sim_351_1/357-6861445-6074822?_encoding=UTF8&pd_rd_i=B00UTE7IVQ&pd_rd_r=f08ac831-17bf-11e9-8614-61eb2314ce97&pd_rd_w=GVCNp&pd_rd_wg=yAeJA&pf_rd_p=b79503b3-46ea-4244-8b06-2f14c40a97b1&pf_rd_r=1AE1MZJDDH5WGG46MKQF&psc=1&refRID=1AE1MZJDDH5WGG46MKQFhttps://www.amazon.co.jp/プログラミング超初心者が初心者になるためのPython入門%EF%BC%88%EF%BC%93%EF%BC%89-関数・クラス編-たっく-ebook/dp/B014MQPCZA/ref=pd_sim_351_1/357-6861445-6074822?_encoding=UTF8&pd_rd_i=B014MQPCZA&pd_rd_r=faeda057-17bf-11e9-bc59-41dcf0bf4f18&pd_rd_w=sZ3Tw&pd_rd_wg=sCE0Q&pf_rd_p=b79503b3-46ea-4244-8b06-2f14c40a97b1&pf_rd_r=0P47J0THKB3M6SXP5XWF&psc=1&refRID=0P47J0THKB3M6SXP5XWF【Exploratory】Wordcloudを使用してみる【スクレイピング】取得したページの保存この記事についているタグ検索プロフィールHide21Hk@hide21Unitymainアウトプットを通して、多くのことを学んでいきたいです。現在は、Pythonスクレイピング、Wordpress、Exploratoryを主に勉強しています。