Я пытаюсь удалить изображения из RSS-канала, пропустив первые 3 слова, которые я ищу на bing для изображений, и пытаюсь удалить изображения. Мой код работает, но я всегда получаю сообщение об ошибке, что порт 9515 уже используется. Я уже добавил код, чтобы убить порт, но он не работает, пожалуйста, помогите мне. Я использовал ссылку из этого URL для создания своего кода https://www.thoughtfulcode.com/php-web-scraping/
. / Пожалуйста, помогите мне.
Код
include ('vendor/autoload.php');
error_reporting(E_ERROR | E_PARSE);
$url="https://timesofindia.indiatimes.com/rssfeedstopstories.cms";
$xml = simplexml_load_file($url);
$array = json_decode(json_encode($xml), true);
$description=array();
$i_size=sizeof($array['channel']['item'])-1;
for($i=0;$i<sizeof($array['channel']['item']);$i++){
$title=$array['channel']['item'][$i]['title'];
$keyword_array=explode(" ",$title);
$keyword=$keyword_array[0].' '.$keyword_array[1].' '.$keyword_array[2];
download_feed_image($keyword);
if($i_size==$i){
echo "done";
}
}
function download_feed_image($keyword){
try {
$client = \Symfony\Component\Panther\Client::createChromeClient();
$crawler = $client->request('GET', 'https://www.bing.com/images/search?q='.$keyword.'&form=HDRSC2&first=1&cw=1349&ch=657');
$fullPageHtml = $crawler->html();
$pageH1 = $crawler->filter('.iusc')->attr('href');
$img_tag=null;
parse_str($pageH1,$img_tag);
$file_name = basename($img_tag['mediaurl']);
file_put_contents( $file_name,file_get_contents($img_tag['mediaurl']));
} catch (Exception $e) {
echo $e->getMessage();
} finally {
$client->quit();
}
exec("kill -9 $(lsof -t -i:9515)");
}