前回に引き続いて今回はSelenium
を使ってスクレイピングを行う処理を行っていきたいと思います。
実行環境
- MacOS
- Python3.7.6(anaconda)
- VSCode
参考にした記事
Seleniumのlocatorで必須となるcssSelectorをまとめてみた
PythonのSeleniumで特定の要素を指定して取得する
Python、Seleniumの基本
【Python】find_elements_by_css_selector・・・cssセレクタから要素を取得する
【Python3】ブラウザを経由したスクレイピング(動的なページなど)【Selenium】
HTMLタグ・要素・属性・CSSプロパティの整理
Seleniumを安定稼働させるために行うべき3つの設定(Headlessモードにも対応)
CSSセレクタの取得方法
seleniumを使う際に、find_element_by_css_selector("セレクタ")
を使用して、ソースコードの中から目的のcssセレクタを取得するのですが、最初は自分でHTMLの階層を読み解いていかなければならないのかと思っていました。
色んな記事を読んでてなんでこの人たちはちゃんとcssセレクタを取得できているのかなと不思議に思っていたのですが、どうやらソースコードをコピーすることができるみたいでして、
① webページの自分が自動的にその場所をクリックしたりしたい場所で右クリックをする
② 検証ボタンを押して検証を行い、自分が欲しいソースコードの場所がマーカーされているので確認
③ そのソースコードの場所で右クリックをしてコピーを押すと、コピーセレクタというのがあるからそれを押す
④ エディタに貼り付ければ欲しいcssセレクタが表示される
といった流れでcssセレクタ
を取得することが可能です。
elementsとelementの違い
elements
にはリストが格納されるが、element
には1つの数字が格納される
clearの使い道
clear
は検索ボックスなどに予め入力されている値を消去できます。
なので、検索ボックスに何か入力をして検索したいとなって場合に、予め入っている値を消去して自分の検索したいことだけを検索をするという処理ができるようになります。
idとclass
id
は1つのwebページに1つしか使えないようになっておりますが、class
は1つのページに何回も使えるようになっております。なので、idで検索する方が自分が取得したい情報にアクセスしやすくなります。
まとめ
なんとかInstagramで自動でいいね
をして、自動でフォロー
するという処理を作ることができました。
作ってみたら意外と仕組みが面白かったので、楽しく作ることができました。