Pythonでスクレイピング(メモ13:seleniumが正しく動作するまで)

Pythonでスクレイピング(メモ12:次の課題はJavaScriptへの対応)

こんばんは。Pythonでスクレイピング奮闘メモです。

前回より新しい課題「JavaScriptのスクレイピング」に取り組んでいます。

今回はとりあえずPythonでブラウザを起動しスクレイピングするまでの流れを確認しつつ、簡単な題材なら出来るようにしておきます。

<この記事の目次>

まだ準備不足だった・・・ブラウザを開くためにドライバーが必要

Seleniumをターミナルで作動させる・・・作動させたらドライバーのPATHを指定しろとのError

PATH(場所)を取得・・・Macで指定のファイル等のPATHが簡単に取得できる

※動作環境

macOS High Sierra 10.13.6

プロセッサ 2.7 GHz Intel Core i5

メモリ 8 GB 1867 MHz DDR3

Python 3.6.0 :: Anaconda custom (x86_64)

コマンド実行は「ターミナル」、.py編集は「Xcode」を使用

まだ準備不足だった

とりあえず前回参考にしたページよりもっとシンプルな題材はないかと思い、「python javascript スクレイピング」でググりました。

すると上から4番目に出てきたページがより簡単そうで詳しかった。

「Yahooのニュース一覧ページのおすすめ記事のタイトルを取得する」のが目標のようだ。

そして読んでみるとドライバーが必要なようなのでインストール。

Google Chromeでやりたいので、https://sites.google.com/a/chromium.org/chromedriver/から最新バージョンをインストール。

これで本当に準備が完了しました。

Seleniumをターミナルで作動させる

ところで、ここまで参考にしてきたページは2つありましたが、どれも用意したコード(.py)をどうやって作動させているか分からない!笑

すごい初歩的かもしれませんが・・・

ということで、「selenium ターミナル」でググる

トップで出てきたページがタイトル通りすごく簡単でわかりやすかった。

Pythonのインストールなども詳しい。

ここで欲しかった情報は最後の方にありました。

python (ファイル名).py

これだけでした笑

今まで「Scrapy」を何も考えずにずっと使っていましたが、このときに初めて何となく意味がわかりました笑

ついでに題材がとても簡単(PythonでGoogle Chromeを開くだけ)だったので試しにやってみました。

ところが。

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

Errorが出てしまったので・・・「’chromedriver’ executable needs to be in PATH.」でググる

トップに出てきたページによると、なんかドライバーのPATHを指定しろということでした。

driver = webdriver.Chrome('PATHを指定')

つまりこういうことらしいです。

PATH(場所)を取得

そもそもPATHって何ですか?レベルですが笑

一旦「マック パス 取得」でググる

トップに出てきたページを見てくれればすぐ分かると思うので説明割愛していいですか?笑

対象ファイルを右クリックしoptionキーを押すことで、出てきたメニューのうちの「”(ファイル名)”のコピー」が「”(ファイル名)”のパス名をコピー」に変化!

実際にコピペすると、デスクトップにあるファイルだと例えばこんな感じになります。

/Users/(ユーザー名)/Desktop/(ファイル名)

おおPATHってファイルの住所みたいなやつの事なのか!笑

これで準備が整いました。

「Yahooのニュース一覧ページのおすすめ記事のタイトルを取得する」のが目標だったこのページのコードをコピペしていざ実行!

メイ・エル=カリル: マラソンで平和を築く
ポルトガルで躍動する中島翔哉にブンデス勢も興味か…ドルトムントら4クラブがスカウト派遣
長友佑都、若手躍動に「必死なおっさん」が嬉しい悲鳴「若手イケイケすぎて…」
YouTubeで接続障害 「アクセスできない」報告相次ぐ
ハサン・エラヒ:FBIのみなさん!僕はここだよ!
大阪城たこ焼き店主に懲役1年罰金3900万円求刑
移籍1年目で初のふたケタ勝利。榎田大樹はなぜ西武で開花したのか
松本人志、再度主張!自殺する子どもを減らすため「死んだら負けや」を「オレは言い続けるよ」
パム・ワーハースト:「食べられる景色がある町づくり」
YouTube、世界規模で障害か 動画の再生できず
桁違いの中島翔哉、スペクタクルだった森保J。一方・・・課題はあのベルギー戦から何も変わらず【西部の目】
原氏再々登板でついに実現? 巨人「江川ヘッド」が急浮上
ガリク・イスラエリアン:星の中には何がある?
カンニング竹山、宅配便会社からの突然LINEに違和感「本物だとしてもこのやり方は企業としておかしくないか?」
【釜本邦茂】本気で勝ちに来たウルグアイのメンツを潰した日本!! この勝利は本物だ!

少々結果が出るまでにラグがありましたが何とか成功しました!

※コードに関しては、今回は完全コピペなのでリンク先のものを参考にしてください。

次回以降は、今回ただのコピペだったコードを書き換えていくための準備をしていこうと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする