我试图通过传递我在 bing 上搜索图像并尝试抓取图像的前 3 个单词来从 rss 提要中抓取图像。我的代码正在运行,但我总是收到端口 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)");
}