17

私はここ数日、複数のタスクの組み合わせとしてSelenium、Tor、Firefoxをいじり回してきました。FirefoxがプライバシーのためにTorに接続されている間に、Seleniumを介してFirefoxを制御する簡単なスクリプトをPythonで作成することができました。

今、リソースを節約する方法を探しているので、Firefoxをヘッドレスモードで実行することを考えました。これは一般的な機能だと思いましたが、そうではないようです。私はまさにそれを行う方法を探しています。Firefoxであり、端末ベースのブラウザではない理由は、Firefox内で使用している拡張機能「TorButton」のためです。プライバシーに役立つJavaScriptインジェクションが組み込まれています。

誰かが以前にこれを行ったことがある場合(多くの人が持っていると確信しています!)、いくつかのヒントをいただければ幸いです、ありがとうございます!

4

5 に答える 5

11

xvfbは、これを行う一般的な方法です。「seleniumxvfb」を検索すると、次のようなロットが見つかります。

于 2012-04-08T05:16:53.610 に答える
10

2017年9月28日のバージョン56のリリース以降、Firefoxヘッドレスモードは3つの主要なオペレーティングシステムすべてで使用できます。

webdriver.FirefoxOptions()Chromeの場合と同じように、からヘッドレスモードを設定できます。

from selenium import webdriver

options = webdriver.FirefoxOptions()
options.add_argument('headless')
driver = webdriver.Firefox(options=options)

PS Selenium <3.8.0を使用する場合は、に置き換える必要がありますwebdriver.FirefoxOptions()webdriver.firefox.options.Options()PR #5120を参照)。

さらに、enviroment変数MOZ_HEADLESSを使用すると同じことが行われます。

import os
from selenium import webdriver

os.environ['MOZ_HEADLESS'] = '1'  # <- this line
driver = webdriver.Firefox()
于 2017-11-25T01:14:34.543 に答える
5

または、軽量でセレンとうまく統合されたPhantomjsのような真のヘッドレスブラウザを使用することもできます

from selenium import webdriver
driver=webdriver.PhantomJS('your pahtomjs exe file locaiton')
于 2013-07-29T05:07:38.890 に答える
0

ヘッドレスFirefoxの開発は進んでいます。

2017年4月21日から、https://adriftwith.me/coding/2017/04/21/headless-slimerjs-with-firefox/

tl; dr Linux上のFirefoxNightlyは、SlimerJSのヘッドレス実行をサポートしています。
より多くのプラットフォームと完全なヘッドレスFirefoxが間もなく登場します。

于 2017-07-03T08:56:35.577 に答える
0

最終的に答えを見つけた場合:

まず、最初に次のことを行い
ます。ファイアフォックスのドライブパスを正しく設定するように注意してください。

その後:

sudo apt-add-repository ppa:mozillateam / firefox-next
sudo apt-get update
sudo apt-get install firefox xvfb
Xvfb:10 -ac&
export DISPLAY =:10

最後に、このコマンドを実行して、notの実装にエラーがあるかどうかを確認します。

Firefox

出力がない場合は、ctrl+cをクリックします。
わかりました、その後、このコードを書いてください。

from selenium import webdriver

class FireFoxLoadTest:
    def __init__(self):
        # 1 - Load a fire fox web driver
        self.driver = webdriver.Firefox()

    def do_test(self, url):
        # 2 - Start to check url on the fire fox browser
        result = self.driver.get(url)
        self.driver.quit()
        return self.result

fire_fox = FireFoxLoadTest()
res = fire_fox.do_test('http://www.google.com')
print(res)
于 2017-09-14T08:04:24.043 に答える