我最近刚刚开始使用Python编写代码,所以如果最终成为一个简单的问题并且我一直在查找错误的关键字,我会提前道歉。
基本上我使用python和selenium创建一个scraper,只是想将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中准备结果的理解,以便可以传递给PHP。
我非常感谢您的帮助或指导我朝着正确的方向前进。
非常感谢提前。
答案 0 :(得分:1)
问题是您还没有阅读exec的文档
$return = null;
$result = exec('/usr/bin/python3 get_files.py', $return);
print_r($result);
var_dump($return);
中的确切文档进行操作return_var 如果return_var参数与输出参数一起出现,则执行命令的返回状态将写入此变量。