Seleniumでクローリングとスクレイピングを試す python
とにかく試して見るシリーズ第5弾。
前回、BeautifulSoupでスクレイピングを試したが、なんだかあまり活用する場面が思い浮かばんなあと思っていた。
同僚の方が普段使っているということで、手ほどきを受けながら挑戦した。
今回はソースコードの公開を控える(どっちみち酷いコードなのですが...)。
なぜやったのか
やっぱりpythonでできそうなことは試しておきたい。
Web系のデータが驚くほど馴染まなかったので、もっとWebを理解していきたい。
試してみたこと
ある商材のスペックと販売価格を取得する。
手順は下記の通り。
1. メーカー単位の商品一覧ページのURLをクローリングして取得する
2. 各メーカーの商品詳細ページのURLをクローリングして取得する
3. 全てやりたいところだが、1メーカーの全商品に絞ってスクレイピングして、目的のデータを取得する
苦労した処理
- ページネイションをクリックしながら遷移させる処理
execute_scriptメソッドで、javascriptを実行する - メーカー名、商品名の取得
置換処理も交えて対処 - 商品スペックの掲載位置が商品によって異なる
ロジック組んで回避 - カラム名称として使用する、ヘッダー行をhtmlから生成
スクリプトでやる必要は全くないが、pythonでやることにこだわってみた。