

【やりたいこと】URLを抜き出す練習したい!
WebページからURLを抜き出す方法は、色々紹介しましたね。
今回は、スクレイピングで使用するcssselectの練習記事です。「こんな方法でスクレイピングしてるよ」って記事ですね。
では、さっそく、スクレイピングしていきましょう!
【10分でできる】cssselectに慣れよう!
※ダウンロード時間は10分の中に含まれていません。
1.使用したもの
・Virtual box
・Vagrant

・Term Term

・Python3.4
・lxml
2.手順
※下記の記事の内容を完了しているものとして、進めていきます。


①Webページの検証
本サイトのトップページから、記事を右クリックします。
検証をクリックします。
記事のURLが含まれる文字列を確認します。
確認した結果、a要素にclass属性とtitle属性といっしょに記事のURLが含まれていることが分かります。
②Pythonスクリプトファイルの作成
import requests import lxml.html response = requests.get('https://hk-ryukyu.club/hideto/') root = lxml.html.fromstring(response.content) for a in root.cssselect('a[class="entry-card-wrap a-wrap cf"]'): url = a.get('href') print(url)Pythonクローリング&スクレイピング サンプルコードpython_crawler_1参考
上記のスクリプトを作成します。着目してほしい点は、以下の1つです。
('a[class="entry-card-wrap a-wrap cf"]')
複数あるa要素の中で、「class=”entry-card-wrap a-wrap cf”」を属性に持つa要素を取得しています。
そうすることで、記事以外のURLを取得しないようになります。
③実行
②で作成したスクリプトを実行しました。
記事タイトルが表示されていないので、分かりづらいですが、
記事のURLだけを抽出することに成功しています。
3.追記
cssselectの使い方に慣れてきましたか。
正規表現が文字列の細かいパターンを取得するために使うのに対して、
cssselectは、要素や属性など大きな枠組みを取得するのに向いていそうですね。
【最後に】参考図書の紹介
以下の書籍は、私がPythonスクレイピングを勉強するにあたって、使用した書籍です。
「Python逆引き大全」は、秀和システムの技術書読み放題サービス「10×Eng」で読めます。最初の2週間は無料、それ以降は、月額900円で利用できます。
「プログラミング超初心者が初心者になるためのPython入門」はkindle unlimitedで読めます。
コメント