我有一个python脚本用于使用selenium进行抓取。当我用这样的终端调用我的脚本时
/usr/bin/python3 /home/scraping.py
我的拼抢工作没有问题
尝试用php调用相同的脚本无效。
在我的python脚本上有这个
import sys
from selenium import webdriver
driver =webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs')
driver.set_window_size(1024, 768)
driver.get(url)
page = driver.page_source.encode("utf-8")
print(page)
当我删除此行
时driver =webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs')
driver.set_window_size(1024, 768)
driver.get(url)
page = driver.page_source.encode("utf-8")
我把juste print('test')
我这项工作
我的php文件试过
Running a Python script from PHP
Execute Python script from Php
How to call a Python Script from PHP?
但没有任何作用
我将我的权限文件更改为chmod 777 scraping.py
,试图更改www-data
的组文件我试图将www-data放入soduers文件
在我的PHP代码中我有三个
output = array();
exec("/usr/bin/python3 /home/scraping.py",$output);
var_dump( $output);
$command = escapeshellcmd('/usr/bin/python3 /home/scraping.py');
$output = shell_exec($command);
echo $output;
ob_start();
passthru('/usr/bin/python3 /home/scraping.py');
$ output = ob_get_clean()
修改
我找到了问题
问题是phantomjs生成的日志文件和shebang在我的代码中排在最前面
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
from selenium import webdriver
driver =webdriver.PhantomJS( service_log_path='/home/ghostdriver.log'executable_path='/usr/local/bin/phantomjs')
driver.set_window_size(1024, 768)
driver.get(url)
page = driver.page_source.encode("utf-8")
print(page)
更改后,ghostdriver.log对www-data的权限可以读取id你再次出错,将组www-data放在没有passwd的sudoers文件中