我正在构建一个基于PHP Web的简单刮板。 PHP提供了一个要抓取的关键字,我的python脚本执行该操作并将其写入JSON文件,然后我的PHP文件读取JSON。但我有一个问题,它在我的IDE上运行良好,但是当移至Codeigniter时,效果却不佳。
有两个问题:
scraper脚本(使用硒)将无法运行
禁止访问(通过移动目录来解决)
禁止访问的错误消息:
A PHP Error was encountered
Severity: Warning
Message: file_get_contents(http://localhost/scraper/application/controllers/scrap-result.json): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
从IDE运行时,以下工作正常
script.php
$item= "thingtosearch";
$output = shell_exec('python C:\xampp\htdocs\selenium\crawler.py '.escapeshellarg($item).' '.escapeshellarg($item));
crawler.py
import sys
from selenium import webdriver
import json
url = "https://www.webtoscrape.com/search?%5Bkeywords%5D=" +sys.argv[1]
chromeOptions = webdriver.ChromeOptions()
prefs = {'profile.managed_default_content_settings.images':2}
chromeOptions.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)
driver.get(url)
driver.implicitly_wait(10)
snippets = {'python': [], 'text': [], 'php': [], 'js': []}
#scraping goes here
driver.quit()
myfile = open('scrap-result.json','w+')
json.dump(snippets['js'],
sys.exit(1)
但是当我将代码移至Codeigniter时,却没有
以下内容不起作用
script-controller-codeigniter.php的片段
$output = shell_exec('python C:\xampp\htdocs\selenium\crawler.py '.escapeshellarg($data['keyword']));
$filepath = base_url() ."application/controllers/scrap-result.json";
print($filepath); #to check if path is correct
$result= json_decode(file_get_contents( $filepath));
print_r($hasilscrape );
我转储了$ filepath(json文件的位置)并且是正确的。
我的操作系统是Windows,我使用的是XAMPP,我的所有代码都在本地PC中。
我的问题是: