はじめに
Googleのスプレッドシートは表計算するだけでなく、あるセルの言語を翻訳したり、データに対してクエリを発行したりできます。
面白い使い方として、IMPORTXMLのような関数を使うと簡単にWebスクレイピングができるので書いておきたいと思います。
スプレッドシートでWebスクレイピング
今回はYahoo! ニュースのトップページにある主要記事のリストを取得しようと思います。
ちなみに重要なことなのですが、スクレイピングを許可していないサイトもありますし、たくさんスクレイピングすると相手に迷惑なので、ほどほどにしましょう。
まず新規でスプレッドシートを作成します。意外に知られてないのですが、ブラウザのURLにsheet.new
と書くと自分のGoogle Driveにスプレッドシートが新規作成されます。
シートのセルに対象となるURLを書きます。
初手B2 |
Excelの新規データ作成するときの「初手」ってあるじゃないですか。私はB2が初手であることが多いんですが定石はA1ですか?? pic.twitter.com/SkiqN904zs
— 影総務部長@特定社会保険労務士 (@ShadowSR1976) May 10, 2023
スクレイピングしたい対象のXPathを取得します。ブラウザの検証ツール(開発者ツールともいう?)を出し、対象の位置で右クリックをします。するとコピーが出てくるので、そのツリーの中にあるXPathのコピーを選びます。(フルXPathじゃなくていいです)
取得したい箇所を選ぶ |
Copy XPathを選ぶ |
任意のセルにIMPORTXMLを書くと、少々のローディングのあとに対象である主要記事リストが取れます。
ただ、このままでは読みにくいのでTEXTJOINを使って整形していきます。理想形としては、1つのセルに縦にニュースが並んでいてほしいです。なので、次のようにTEXTJOINを書きます。
これで縦に並んで読みやすくなりました。
おわりに
WebスクレイピングだとBeautiful
Soapの印象が強くて「コード書くのかー」という気分になるのですが、それはそれで楽しいのですが、サクッとやりたいことだけやりたいときにスプレッドシートを見ると面白い関数があって良いです。
0 件のコメント:
コメントを投稿