2016-05-30 10 views
2

私はPythonでSereniumとPhantomJS(Windowsで)を使ってWebスクレイピングをしようとしています。
Webサイトから最新のPhantomJSビルドをダウンロードしてから、解凍しました。その後私が試したセレンからのPhantomJS - Python

from selenium import webdriver 
browser = webdriver.PhantomJS() 

応答それから私は、私も入れてみました

browser = webdriver.PhantomJS('path_to/phantomjs.exe') 

のように、パスを追加しようとしました

WebDriverException: 'phantomjs' executable needs to be in PATH. 

でした "パスの前にr 'を置きます。

WebDriverException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Notification: Gateway Timeout</title> 

<style type="text/css"> 
body { 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 14px; 
    color:#333333; 
    background-color: #ffffff; 
} 
h1 { 
    font-size: 18px; 
    font-weight: bold; 
    text-decoration: none; 
    padding-top: 0px; 
    color: #2970A6; 
} 
a:link { 
    color: #2970A6; 
    text-decoration: none; 
} 
a:hover { 
    color: #2970A6; 
    text-decoration: underline; 
} 
p.buttonlink { 
    margin-bottom: 24px; 
} 
.copyright { 
    font-size: 12px; 
    color: #666666; 
    margin: 5px 5px 0px 30px; 

} 
.details { 
    font-size: 14px; 
    color: #969696; 
    border: none; 
    padding: 20px 20px 20px 20px; 
    margin: 0px 10px 10px 35px; 
} 

.shadow { 
    border: 3px solid #9f9f9f; 
    padding: 10px 25px 10px 25px; 
    margin: 10px 35px 0px 30px; 
    background-color: #ffffff; 
    width: 600px; 

    -moz-box-shadow: 3px 3px 3px #cccccc; 
    -webkit-box-shadow: 3px 3px 3px #cccccc; 
    box-shadow: 3px 3px 3px #cccccc; 
    /* For IE 8 */ 
    -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=5, Direction=135, Color='cccccc')"; 
    /* For IE 5.5 - 7 */ 
    filter: progid:DXImageTransform.Microsoft.Shadow(Strength=5, Direction=135, Color='cccccc'); 
} 
.logo { 
    border: none; 
    margin: 5px 5px 0px 30px; 
} 
</style> 

</head> 

<body> 
<div class="logo"></div><p>&nbsp;</p> 
<div class="shadow"> 
<h1>This Page Cannot Be Displayed</h1> 


<p> 
The system cannot communicate with the external server (&nbsp;127.0.0.1&nbsp;). 
The Internet server may be busy, may be permanently down, or may be 
unreachable because of network problems. 
</p> 

<p> 
Please check the spelling of the Internet address entered. 
If it is correct, try this request later. 
</p> 



<p> 
If you have questions, please contact 
your corporate network administrator 
and provide the codes shown below. 
</p> 

</div> 

<div class="details"><p> 
Date: Mon, 30 May 2016 12:30:14 CEST<br /> 
Username: <br /> 
Source IP: 10.202.210.98<br /> 
URL: POST http://127.0.0.1/wd/hub/session<br /> 
Category: Uncategorized URLs<br /> 
Reason: UNKNOWN<br /> 
Notification: GATEWAY_TIMEOUT 
</p></div> 
</body> 
</html> 

私はクロームセッションにこのコードを開いてきたし、それは私の企業のファイアウォールのページを開きます。レスポンスはHTMLでexxeptionました。メッセージは、 "システムは外部サーバー(127.0.0.1)と通信できません。" ChromeやFirefoxのドライバでウェブスクラップすることはできますが、PhantomJSにはこの問題があります。
私を助けることができますか?

+0

私はまた、使用されたURLがPOST http://127.0.0.1/wd/hub/sessionであることを発見しました。これを変更する方法はありますか?明らかに企業ファイアウォールの問題です。 –

答えて

2

は、インストールしたところ、以下のように絶対パスを使用しようとも「127.0.0.1」

os.environ['NO_PROXY'] = '127.0.0.1' 
driver = webdriver.PhantomJS(
executable_path=r'C:\Python\Python35-32\Lib\site-packages\phantomjs-2.1.1-windows\bin\phantomjs') 
+0

いいえ、同じ問題。 –

0

は 'NO_PROXYの環境を設定し、私はこの、Windowsの下で働いあまりにも取得しようとしています...

私はWebDriverをスーパークラス化しています。スーパークラスを初期化するときに、Webdriverの__init__メソッドにABSOLUTEパスを渡しています。

これはさらに私を持っている - 今、私は私が正しい軌道に乗ってんだ印象を与える

Exception WebDriverException: Message: 'phantomjs' executable may have wrong permissions. 

を見ている...それはあなただけの実行ファイルがにであるパスを渡すことができます示唆しますwebdriverオブジェクトのコンストラクタ(単純な文字列として)

関連する問題