1

Selenium、PhantomJS ドライバー、Python バインディングを使用して、ユーザー名とパスワード、およびカスタム ユーザー エージェントを必要とするプロキシをワーカーに割り当てる方法。

テスト Web サイトを横断する多くのワーカーを作成することに成功しました。承認を必要としないユーザー エージェントまたはプロキシを割り当てることもできます。しかし、同じワーカーに対して両方を同時に行う方法はまだわかりません。

ただし、現時点での本当の問題は、ユーザー名とパスワードによる承認が必要なワーカーにプロキシを割り当てることです。

プレーヤー: Selenium 2.33.0 / PhantomJS 1.9.1 / Python 2.7.3 / Ubuntu 12.04

私:ぬべ。Python 週、Linux 日、Selenium 時間、PhantomJS -= 、SO 最初の投稿

検索結果: python webdriver で phantomjs/ghostdriver のプロキシを設定するにはどうすればよいですか?

答えは実際にはそこにあるかもしれませんし、私が読んだり再読した他の多くの場所もありますが、現在のレベルでは点をつなぐことはできません.

ユーザーエージェントはこの方法で解決しました。

dcap = dict(DesiredCapabilities.PHANTOMJS)           
dcap["phantomjs.page.settings.userAgent"] = (
                "Any User Agent string here”)
driver = webdriver.PhantomJS(desired_capabilities=dcap)

承認なしのプロキシはこれで機能します:

service_args = [
    '--proxy=127.0.0.1:9999',
    '--proxy-type=http,
    ]
driver = webdriver.PhantomJS('/usr/local/bin/phantomjs,service_args=service_args)

上記の両方の方法が使用されている場合、プロキシと UA の両方を PhantomJS ドライバーに渡す方法がわかりません。ATM 認証が必要なプロキシでは、どちらか一方しか実行できず、まったく実行できません。

この SO スレッドの目標:

  1. ユーザー名/パスワードが必要なプロキシを割り当てる方法を学ぶ
  2. カスタム ユーザー エージェントを同じワーカーに割り当てます。

Selenium、PhantomJS ドライバー、Python バインディングを使用。

最終的な目標は、各ワーカーに一意の IP を割り当て、ユーザー エージェントのプールからプルすることです。このためのロジックを作成していますが、私は楽観的ですが、現在、承認されたプロキシが私を蹴っています。

おわかりのように、私はこれらすべてに非常に慣れていないため、この特定の問題の助けと例をいただければ幸いです。

ありがとう!

編集: 以下の受け入れられた回答は正しくありません。以下のソリューションを再現できません。承認されたプロキシのみがドライバーに割り当てられます。プロキシとユーザー エージェントの両方を同じドライバーに割り当てることはできません。

どんな助けや指示も大歓迎です。

EDIT.02: 問題が解決しました。コーディングの問題ではありませんでした。サーバー レベルの新しいプロキシ プロバイダーは、上記のスクリプトをオーバーライドするデフォルトの UA を割り当てました。これが削除されると、すべてがうまくいきました。

4

1 に答える 1

3

必要な機能によってユーザー エージェントを割り当てる

dcap = dict(DesiredCapabilities.PHANTOMJS)           
dcap["phantomjs.page.settings.userAgent"] = (
    "Your User Agent String here . . .")

プロキシ認証の API リファレンスはこちらをご覧ください
"--proxy-auth=username:password" を server_args に追加します。お気に入り 。. .

service_args = [
    '--proxy=xxx.xxx.xx.xxx:xxxx',
    '--proxy-auth=username:password',
    '--proxy-type=http',
    ] 

次に、webdriver の起動時に両方を使用します

driver = webdriver.PhantomJS(desired_capabilities=dcap,service_args=service_args)

これで私の問題はすべて解決しました。

編集: 解決策を再現できません。上記の方法で変更するのはプロキシのみです。

EDIT.02: 問題が解決しました。コーディングの問題ではありませんでした。サーバー レベルの新しいプロキシ プロバイダーは、上記のスクリプトをオーバーライドするデフォルトの UA を割り当てました。これが削除されると、すべてがうまくいきました。

于 2013-06-15T16:21:30.170 に答える