←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に違和感「本物だとしてもこのやり方は企業としておかしくないか?」 【釜本邦茂】本気で勝ちに来たウルグアイのメンツを潰した日本!! この勝利は本物だ!
少々結果が出るまでにラグがありましたが何とか成功しました!
※コードに関しては、今回は完全コピペなのでリンク先のものを参考にしてください。
次回以降は、今回ただのコピペだったコードを書き換えていくための準備をしていこうと思います。