LoginSignup
0
0

More than 5 years have passed since last update.

スクレイピングの優先順位

Posted at

スクレピングの技術のあれこれ

ここでは主にパース方法の優先度を挙げる

結論

以下の優先度でパースできないかを探る

  1. JSON
  2. CSSセレクタ
  3. XPath
  4. 正規表現

まずはJSONがあればパースが一番楽

今どきはJavaScriptのフレームワークを使って画面を描画することが多い。
そうするとコンテンツの本体はJSONで降ってくることも多い。
JavaScriptで描画されるから、Seleniumを使わないと駄目だよねという判断もあるのかも知れないけど、実際にはJSONをGETするだけでよいケースは多い。

次にCSSセレクタ

ちゃんとしたデザイナーが入れば、CSSのクラスやIDは「コンテンツの意味に応じてネーミング」している。そしてデザイもCSSセレクタが書きやすいように書いている。なのでCSSセレクタでパースするのが楽になってるはず。

次にXPath

XPathは本来的にはXMLをパースするためのものなので、HTMLをパースするのに使うと、ちょっと表現が冗長になる。ただCSSセレクタに比べるとちょっとだけ機能が多い。テキストノードに含まれるテキストの部分一致で要素を取得したい時にはXPathが便利。

正規表現

テキストから値を部分的に取得するなら正規表現でかける。ただし読みづらい。上記の方法が全部使えなかった時の最後の手段。またパース後のテキストから、部分文字列を取り出す時には当然正規表現で取り出す。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0