1. はじめに Selenium を使用して Web サイトからデータをスクレイピングしたいのですが、phantomjs を使用するとエラーが発生することがあります。 Chrome にはヘッドレス実行モードも追加されたため、phantomjs は不要になりました。 しかし、Chromeをサーバーにインストールする際にエラーが発生しました。インストールプロセス全体の概要は次のとおりです。 2. UbuntuにChromeをインストールする # Google Chromeをインストールする # https://askubuntu.com/questions/79280/コマンドライン経由でChromeブラウザを適切にインストールする方法 sudo apt-get で libxss1 libappindicator1 libindicator7 をインストールします https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb を取得します。 sudo dpkg -i google-chrome*.deb # 「エラー」が表示される場合があります。次の行で修正します。 sudo apt-getインストール -f これでインストールは完了しているはずです。次のコマンドを実行してテストしてください。
ここでは、リモート デバッグにヘッドレス モードを使用します。ほとんどの Ubuntu マシンには GPU がないため、エラーを回避するために --disable-gpu が使用されます。 カール http://localhost:9222 正常にインストールされると、デバッグ情報が表示されます。しかし、ここでエラーを報告します。以下はエラーの解決策です。 1) 考えられるエラーの解決方法 上記のコマンドを実行すると、Chrome をルートで実行できないというエラー メッセージが表示される場合があります。現時点では、次の設定を使用してChromeを設定します 1. google-chromeファイルを見つける 私の場所は/opt/google/chrome/です 2. viでgoogle-chromeファイルを開く
ファイル内に見つかりました
3. 最後に –user-data-dir –no-sandbox を追加します。シェルコマンド全体は次のようになります。
4. Google Chrome を再度開くと、通常どおりアクセスできます。 3. Chromeドライバをインストールする chromedriver chromedriverをダウンロード Chromedriver は Chrome を操作するための API を提供し、Selenium が Chrome を制御するためのブリッジとなります。 chromedriver は最新バージョンをインストールするのがベストです。 最初は最新バージョンをインストールしておらず、エラーが報告されたことを覚えています。最新バージョンのchromedriverを使用しても問題ありません。最新バージョンは次のアドレスにあります。 この記事を書いた時点での最新バージョンは2.37でした https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip を取得します。 この時点で、サーバー側インターフェースのないバージョンの Chrome がインストールされます。 4. インターフェースなしバージョンのChromeの使い方 セレンからWebDriverをインポート chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') chrome_options.add_argument("user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'") wd = webdriver.Chrome(chrome_options=chrome_options、実行可能パス='/home/chrome/chromedriver') wd.get("https://www.163.com") コンテンツ = wd.page_source.encode('utf-8') 印刷コンテンツ wd.quit() ここで、chrome_options の 3 番目の設定パラメータにより、クロール防止にボーダーレス モードを使用していることが Web サイトによって検出されないようにすることができます。 以下の他の 2 つの設定は、設定されていない場合は、デスクトップ Linux システムまたは Mac システムでユーザー インターフェース付きの Chrome を開きます。デバッグ時には、次の 2 行をコメント アウトし、ユーザー インターフェース付きの Chrome を使用してプログラムをデバッグできます。 chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') 5. 参考文献 https://jiayi.space/post/zai-ubuntufu-wu-qi-shang-shi-yong-chrome-headless 要約する サーバー上で動作する selenium+chromedriver に関するこの記事はこれで終わりです。サーバー上で動作する selenium+chromedriver の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: React コンポーネントのコンストラクタとスーパーの知識ポイントのまとめ
何ですかまず、Docker の概念を見てみましょう。アプリケーションと実行環境をコンテナにパッケージ...
<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...
1. CSS 要素の非表示<br />CSS では、要素を非表示にする (つまり、画面の...
結果:実装コード: html <link href='https://fonts.go...
現在、プロジェクトを作成しました。インターフェースは次のとおりです。これはフレームセットを使用して行...
最新のパーフェクト アロエ ベラ ジェルのパッケージ ボックスには、赤いフォントで完璧な英語の文字が...
最近、あるサービスにアラームが発生し、耐えられなくなっています。アラーム情報は次のとおりです。メトリ...
最近、新しいプロジェクトでは springcloud と docker が使用されています。この 2...
目次序文質問原理テスト序文プログラムを作成するときに、読み込みの進行状況やアップロードの進行状況など...
タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...
背景アプリケーション システムの数が増え続けると、当初はアラームを発していなかったアクティブ スレッ...
この記事では、例を使用して、replace と regexp を使用して MySQL で正規表現を置...
目次序文1. クロージャとは何ですか? 1.1 クロージャは条件コードを満たす1.2 クロージャ生成...
Traceroute を使用すると、情報がコンピュータからインターネットの反対側のホストまでたどるパ...
目次1. コンセプト2. 環境の説明3. マスタースレーブホットスタンバイ実装1. コンセプト1. ...