3回目のこのレッスンでは、該当サイトで文字列検索をして、その検索結果の出てきたページのタイトル、リンク先URL、説明文を取得する方法について解説をします。
この方法を知っていれば、特定のワードで検索をして、その検索結果に出たページはなんなのか?検索順位はなんなのか?
そういったことを定期的にチェックしている方にはうってつけですよね。
またこの動画では、検索結果が複数あった場合にどうすればいいのか?ということも説明いたしました。
以前紹介したPythonのプログラムを自動実行するcronやタスクスケジューラを使えば、自動で検索結果や順位を取得してくれるので業務が楽になるはずです。
ぜひマスターしてみてください。
また、この動画3回目です。このレッスンでわからないことがあれば前回のレッスンに戻ってみてください。
もしわからないことがあれば、過去の2回の動画に戻ってみてください。
わからないことの解説になるかもしれません。
キノコードでは、この動画で話した内容の文字書き起こし、ソースコードもキノコードのウェブサイト、キノブログでもアップしています。
そちらもぜひチェックしてみてください。
それではレッスンスタートです。
▼目次
00:00 ダイジェスト
00:25 はじめに
02:02 キーワード検索URLの作成
05:14 検索結果のHTML構造の確認
08:49 検索結果が複数ページの場合のURLの作成
10:12 検索結果が1ページの場合のURL作成と条件分岐
11:42 検索結果の情報の取得
14:09 取得したデータをデータフレームに変換
14:53 CSVファイルへの書き出し
15:30 おわりに
▼関連動画
<Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう|Webスクレイピングのやり方をわかりやすく解説>
<PythonでWebスクレイピング|複数ページに記載があるリンク先URLを取得する方法をわかりやすく解説>
<Python超入門講座>
<Pandas超入門講座>
▼自己紹介
現在:フリーランス
前職:リクルート
▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook : https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/
Website : https://kino-code.com/
#Python #Webスクレイピング #自動化
▼書き起こし
“`python
from bs4 import BeautifulSoup
import requests
import pandas as pd
import time
“`
では、ライブラリをインポートしていきます。
bs4のパッケージの中にあるBeautifulSoupを読み込みます。
BeautifulSoupは、複雑なHTMLの構造を解析し、必要な部分を取り出すことができるライブラリです。
HTTP接続するために、requestsをインポートします。
requestsはPythonの標準のurllibモジュールよりもシンプルに実装でき、APIに関する機能も備わっています。
取得したデータをCSVに書き出すために、pandasをインポートします。
asを記述するとライブラリ名を好きな名前で使うことができます。
さらに、HTTPに接続した後、すぐに次の処理が実行されないようにするためtimeをインポートします。
実行します。
インポートが完了しました。
“`python
keyword = ‘python’
“`
検索バーに入力する文字を変数key_wordに代入します。
今回は”python”とします。
“`python
keyword
“`
key_wordの中身を確認しましょう。
実行します。
データが格納されているようです。
Webスクレイピング練習用のキノコードのサイト、テスト版キノブログに行ってpythonという文字列を検索してみましょう。
現在はこのようなURLとなっています。
“kino-code.com”ではなく、”kino-code.work”です。
検索をすると、このURLが変化します。
Pythonという文字をキノブログの検索バーから検索をしてみましょう。
エンターを押します。
そうすると、”https://kino-code.work/?s=python” となりました。
つまり、このキノブログの場合、このURLを実行、つまりこのURLを呼び出せば、Pythonという文字列で検索した結果が返ってくることがわかります。
“`python
# 検索バーのurlに変数key_wordを追加する
url = ‘https://kino-code.work/?s={}’.format(keyword)
“`
では、先ほど代入したkey_wordの変数を使って、このURLを作成してみましょう。
文字列に変数を追加するには、format関数を使えばいいです。
丸括弧の中に、追加したい文字列を渡します。
先ほど変数key_wordに代入した文字列は「python」です。
urlは、このように ( https://kino-code.com/?s=python ) となるはずです。
実行します。
“`python
# 実行コード
url
“`
urlの中身を確認しましょう。
実行します。
データが格納されているようです。
“`python
# リンクを呼び出すコード
r = requests.get(url)
time.sleep(3)
“`
requestsのgetメソッドで、指定したurlを呼び出す記述をします。
引数には、先ほど設定したurlを渡します。
Webページが読み込まれる前に、次の処理に行かないように、time.sleep(3)で、3秒待機させます。
▼書き起こしブログ
(準備中)
コメント
太った?
無駄に良いマイク