Python

Seleniumでのスクレイピング時にCloudFlareの認証を回避する方法

この記事は約4分で読めます。

 

SeleniumでECサイトや有名なSNSをスクレイピングしようとするとCLOUDFLAREというセキュリティーサービスのBOT検知に引っ掛かりユーザー認証の画面に飛ばされることがあると思います

 

その回避方法はいろいろあるのですが、今回はDrissionPageというライブラリを使ってCloudFlareの認証を回避してスクレイピングを行う方法について紹介していきます

 

前準備

 

まずは以下のコマンドでライブラリをインストールします

 

$ pip install drissionpage

 

プロジェクトの概要については下記を参照してください

Gitのurl:https://github.com/g1879/DrissionPage/tree/master

 

Seleniumとの比較

 

Selenium使用例

 

もう当たり前だと思いますがseleniumではブラウザを起動してサイトにアクセスする処理は以下のように記述します。

 

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.get("取得したいページのURL")
html = driver.page_source

 

DrissionPage使用例

 

一方DrissionPageではブラウザを起動してサイトにアクセスする処理は以下のように記述します。

方言みたいな感じではありますが、若干書き方が異なるので注意してください

 

from DrissionPage import ChromiumPage
page = ChromiumPage()
page.get("取得したいページのURL")
html_content = page.html
page.quit()

 

要素の指定

 

DrissionPageでの要素の指定はSELENIUMのBYメソッドを流用します。

具体的には(指定する方法,指定する要素名)でtupleを作成し、それを.ele()というメソッドに引数として投げるイメージです

 

<サンプルコード>

from selenium.webdriver.common.by import By
loc2 = By.XPATH,'/html/body/div[1]/div[2]/div/div/div[2]/div/div[2]/div/div/div[4]/p'
test = page.ele(loc2)
print(text.text) # 要素内のテキストを取得

 

要素のクリック

 

DrissionPageでの要素のクリックは以下のような感じです。要素の指定については上述した通りで、クリックは従来のseleniumと同じ.click()で行います

 

loc = By.XPATH,"/html/body/div[1]/div[2]/div/div/div[2]/div/div[1]/div/div/div/div[2]/div/div[2]/input"
test = page.ele(loc)
test.click()

 

終わり

 

ここでは基本的な追加方を紹介しました。タブの切り替えやIFRAME云々やスクロールのやり方については下記のドキュメントに記載されておりますのでそちらを参考にしてください。では~

 

Gitのurl:https://github.com/g1879/DrissionPage/tree/master

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました