2017-08-28 5 views
0

私は最近、Pythonでのコード作成を開始しました。これが単純な問題に終わり、誤ったキーワードを探していた場合は、事前にお詫びします。page_sourceをPythonからPHPに引き渡す

私は、PythonとSeleniumを使用してスクレイパーを作成しています。単にデータを操作してデータベースに挿入できるように、DOMをPHPに戻したいだけです。私はこれまでPythonでデータを取得するのに成功しましたが、私の問題はPHPで結果を返すことにあります。私は空白の結果を得る。

私のコードは以下の通りです。

PHP

<?php 
$result = exec('/usr/bin/python3 get_files.py'); 
print_r($result); 
?> 

Pythonの

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
from selenium.common.exceptions import TimeoutException 
import time 
import json 

from pyvirtualdisplay import Display 
display = Display(visible=0, size=(800, 800)) 
display.start() 

chrome_options = Options() 
chrome_options.add_argument("--no-sandbox") 
chrome_options.add_argument("--disable-setuid-sandbox") 
driver = webdriver.Chrome(chrome_options=chrome_options) 

driver.get('http://craiglist.com') 

result = driver.find_element_by_xpath("//*").get_attribute("outerHTML") 

driver.quit() 

print('Hello World') 

print(result) 

ので、今、私はこれが動作している知っている:私は直接Pythonスクリプトを実行すると、 "印刷(結果は)" 完璧に動作

  1. PHPファイルを実行すると、Hello Worldが出力されます。

この問題は、結果がPHPに渡されるように、Pythonで結果を準備する方法を理解しているようです。

私はあなたの援助に感謝し、正しい方向に私を指揮します。

事前に感謝します。

+0

ページ上 'JavaScript'の実行を待つ必要がない場合はselenium''における必要はありません正確なマニュアルを参照してください。単純に['要求をインポートする](http://docs.python-requests.org/ja/master/)にアクセスし、ページソースを' result = requests.get( "http://craiglist.com")として取得してください.content' – Andersson

+0

@Anderssonはい、そうです。私は学んでいる間、私は例としてcraiglistを使用しています。しかし、私は、将来的にJavaScriptをロードしてウェブサイトを掻き集めることができるように、セレンを学びたいと思っています。 –

答えて

1

問題は、あなたがexecの

のドキュメントを読んでいないということです
$return = null; 
$result = exec('/usr/bin/python3 get_files.py', $return); 
print_r($result); 
var_dump($return); 

return_var return_var引数が出力引数と一緒に存在する場合、実行したコマンドの戻りステータスが書き込まれますこの変数に

ここhttps://secure.php.net/manual/en/function.exec.php

+0

返事をありがとう。私はあなたの解決策を試しましたが、Hello World "Hello Worldarray(1){[0] => string(12)" Hello World "}"を除いて空の結果が得られます。 –

+0

私のマシンでコードを実行したところ、正常に動作しました。あなたはWebページとして、またはPHPのcliスクリプトとして実行していますか? –

+0

私は現時点ではWebページとして実行しています。 –

関連する問題