从php

时间:2017-08-21 00:07:17

标签: php python selenium

我有一个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?

call python 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文件中

0 个答案:

没有答案