Я строю простой веб-скребок на основе PHP.PHP дает ключевое слово для чистки, мой скрипт на python делает это и записывает его в файл JSON, затем мой файл PHP читает JSON.но у меня есть проблема, она хорошо работает на моей IDE, но при перемещении в Codeigniter это не так.
есть две проблемы:
СкребокСценарий (с использованием селен) не будет запускаться
запрещенный доступ (решено путем перемещения каталога)
сообщение об ошибке для запрещенного доступа:
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, и весь мой код находится на локальном компьютере.
мой вопрос:
- что вызвало селен не работает?
- что вызвало запрещенный доступ, даже если я запускаю локально (решено путем перемещения каталога)