サーバいじくり雑記

2014年12月17日

py-selenium+phantomjsでUser-Agentを設定する

Filed under: 開発技術, Python, Web — bompopo @ 1:16 PM

はー、未だ謎多きpy-selenium+phantomjsです。
とりあえず一つの問題が案外簡単にクリアできたのでメモ。

最近私の頭を痛めていた問題に、「新しいウィンドウを生成するような動作(target=_blankなaをクリック等)をした時、その新しいウィンドウに設定したはずのUAが反映されない」というのがありました。

phantomjsにデバッグ出力オプションをつけて眺めていたところ以下な感じに処理されているようでした。(かなり省いてます)

_addNewPage               <-- 新しいウィンドウつくる!
page.settings             <-- phantomjs.page.settings. に定義されている値が設定される
                                                      (UA定義なければphantomjsデフォ)
page.customHeaders        <-- phantomjs.page.customHeaders. に定義されている値が設定される
                                                           (定義なければデフォなにもしない)
page.onResourceRequested  <-- phantomjs.page.customHeaders. に定義されている値が設定されるが、
                                                            定義なければphantomjsのデフォ値が設定される

つまり、世に出回っている「phantomjs.page.settings.userAgent」への設定だけでは、新しいウィンドウ作った時には「onResourceRequested」にて「phantomjsのデフォ設定値」で上書きされてしまうのです(ナンデ。

最初は「onResourceRequested」で使われる値がなにかわからなかったのですが(ソースざっと読んでも分からなかったorz)、試しに「customHeaders」に設定したところ「onResourceRequested」にても同設定値が使用されていました。

確認したphantomjsのバージョンは1.9.8なのですが、恐らくこの動作は仕様ではないのではないでしょうか。今後動作が変わる気がします。

結局以下のようにするのが今の所(ver1.9.8)ではスマートで鉄板ということに。

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

ua_value = 'Mozilla/5.0 (X11; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0 Iceweasel/34.0'

dcap = DesiredCapabilities.PHANTOMJS
dcap['phantomjs.page.settings.userAgent'] = ua_value
dcap['phantomjs.page.customHeaders.User-Agent'] = ua_value

driver = webdriver.PhantomJS( desired_capabilities=dcap )

#以降処理

追記:いや、selenium側の問題の可能性も?

広告

2013年11月13日

機械学習ライブラリ scikit-learn で簡単ツイート分類

Filed under: ソフト, 開発技術, Python — bompopo @ 3:28 PM

機械学習ライブラリ scikit-learn で簡単ツイート分類

pythonで簡単にできるっぽい。後でやってみるメモ。

2013年6月16日

PythonからJavaScriptに変換「PythonScript」

Filed under: 開発技術, JavaScript, Python, Web — bompopo @ 7:18 PM

PythonからJavaScriptに変換「PythonScript」

他にも同じ機能っぽいのがあった気がするが一応メモ。

2013年4月26日

おすすめ!サーバサイドのログをGoogle Chromeのデバッグツールで確認「Chrome Logger」

Filed under: ソフト, 開発技術, JavaScript, Python, Web — bompopo @ 9:48 PM

おすすめ!サーバサイドのログをGoogle Chromeのデバッグツールで確認「Chrome Logger」

これは便利かも〜。メモメモ。

2013年2月11日

Beautiful Soup 4 + lxml で無理やり XPath を使う(半ばネタ)

Filed under: 開発技術, Python — bompopo @ 7:37 PM

Beautiful Soup 4 + lxml で無理やり XPath を使う(半ばネタ)

ほう〜。XPathの方がなにかと便利なんで参考にさせていただく!

2012年11月6日

Microsoft、「Python Tools for Visual Studio」v1.5を正式公開

Filed under: ソフト, 開発技術, Python, Windows — bompopo @ 11:17 PM

Microsoft、「Python Tools for Visual Studio」v1.5を正式公開

んがっ。存在を知りませんでした。
ここが気になった!

「Parallel Stack」「Parallel Watch」を利用した並列処理のデバッグ・監視もサポートされている。

今使ってるNetBeansのpythonプラグインは特にそんなことうたってないよなぁ。まだ必要なわけじゃないけどあったら超便利な機能。

2012年10月4日

仕様変更凍結が解除され新機能が追加された「Python 3.3」、ついにリリース

Filed under: ソフト, Python — bompopo @ 8:55 PM

仕様変更凍結が解除され新機能が追加された「Python 3.3」、ついにリリース

その仕様凍結2年間の間に2系ー>3系に開発者が移行したかってーとどうじゃろね?私も2系しか使ったこと無いし。

2012年7月30日

多数の言語のAPIドキュメントを一元管理「DocHub」

Filed under: ソフト, 開発技術, JavaScript, Python, Web — bompopo @ 10:39 AM

多数の言語のAPIドキュメントを一元管理「DocHub」

ほー。いいかもな〜これ。できれば翻訳版も管理されていると嬉しいな。あともっと対応言語を増やして!!

2012年5月13日

ソースコード品質チェックツール、「Sonar 3.0」公開

Filed under: ソフト, C++, 開発技術, Java, JavaScript, Python — bompopo @ 5:41 PM

ソースコード品質チェックツール、「Sonar 3.0」公開

C++は対応プラグインないのですか。python対応はいいけど使い勝手次第かなぁ。

2012年3月8日

Python 3系で初となる言語仕様変更を含む「Python 3.3」、初のアルファリリース

Filed under: ソフト, 開発技術, Python — bompopo @ 9:55 PM

Python 3系で初となる言語仕様変更を含む「Python 3.3」、初のアルファリリース

3系使ってるのGentooのportageくらいしか見たこと無いんだよね。それにportageは2系でも動くし。

Older Posts »