プログラミング【スポンサーリンク】PythonのSeleniumを使って、軽くスクレイピングをしました。したサンプル的として、まとめてみました!軽いものなら、「今回のこと+Pythonの知識」でカバーできるんじゃないでしょうか。今回試したことこのようなことを行っています。取得したh1タグの文字列とURLを取得→一覧化SeleniumでSeleniumでChromeを立ち上げるまずはSeleniumでChromeを立ち上げます。このように記述することで、テスト用のChromeが立ち上がります。webdriver.Chrome(executable_path='chromedriver.exe',chrome_options=options)Chrome()の引数「executable_path」は、「chromedriver.exe」のパスを指定します。chromedriver.exeはこちらからダウンロードできます。chromedriver.chromium.org「executable_path="展開先のパス"」としてあげればOKです!ちなみにぼくのように、chromedriver.exeをPathの通ったフォルダに置いておけば、サンプルと同じ記述で実行することもできます。「options.add_argument()」でオプションを設定して、Chromeを起動します。コマンドラインオプションを付与していくイメージですね。ちなみにoptions.add_argument('--headless')を付与することで、GUI画面が表示されずに処理することができます。バックグラウンドで、ガーッ!と処理させたい場合は、コレを付けて試してみましょう。ブログトップにアクセスこれで対象のURLへ遷移することができます。'https://www.lisz-works.com/'driver.get(url)処理→別の画面/ページ→処理→別の......のように次々にページ遷移して処理する場合でも、遷移するタイミングで「get(URL)」していきます。h1タグを取得このブログのトップにアクセスして、「h1タグ=タイトル」を取得してみます。href="https://www.lisz-works.com/entry/python-convert-json-dict">タイトル</a></h1>の箇所が、ヒットした分だけ取得できます。「find_elements_by_css_selector()」は、引数にCSS文字列を渡してあげることで、ヒットした要素を取得できます。複数要素ある場合は、ヒットした個数分取得されます。.class_b」のようにCSSセレクタを使うことで、多様な取得が行えます。「h1」を取得しましたが、ブログトップには複数個「h1」がいます。戻り値を入れたelmsには、配列で複数個のh1タグが入ります。#→'lisz-works'仮に要素が1つでも、「配列型」としてセットされます。要素が1つのときでも、「elms[0]」のように配列0番目へアクセスします。取得したh1タグの文字列とURLを取得→一覧化それでは取得したh1タグを処理していきましょう!このようにすることで、一覧化することができます。")")このforを行うことで、このように出力されます。elm.find_elements_by_css_selector("a")[0]としています。find_elements_by_css_selector()で取得した要素は、WebElement型になっています。序盤に行ったdriver.find_elements_by_css_selector()と同じようにいじることができます*1。「driver.find_elements_by_css_selector()」でSeleniumの要素を取得さらに「find_elements_by_css_selector()」でSeleniumの要素やテキストなどを取得みたいな感じで進めていきます。elm.find_elements_by_css_selector("a")[0]としています。これはh1タグの中にある、aタグを取得しています。href="https://www.lisz-works.com/entry/python-convert-json-dict">タイトル</a></h1>テキストの取得テキストはe.textと記述することで取得できます。要素はe.get_attribute("href")と記述することで取得できます。「get_attribute()」は、引数で渡した要素名を取得することができます。「https://www.lisz-works.com/entry/python-convert-json-dict」の部分が取得できます!これはタグ内に含まれている要素なら取得できるので、例えばe.get_attribute("class")のようにして、クラスを取得することもできます。lisz-worksスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。