我正在用php写一个机器人。我想用curl获取图像源。我可以获得img标签,但我无法从img获得src值。我总是得到空字符串。你能看出我的错误是什么吗?
的index.php
$baglan = Baglan("http://www.hurriyetemlak.com/konut-satilik/sakarya-karasu-yali-emlakcidan-apartman-dairesi/detay/23585876");
preg_match('#<div id="dvSmallPhoto" class="small-photo mt10"> <ul class="thumbs">(.*?) </ul> </div>#', $baglan, $resimlerGenel);
preg_match_all('#<li><figure>(.*?)</figure></li>#', $resimlerGenel[1], $resimler);
$yeni = str_replace('"', '\'', $resimlerGenel[1]);
preg_match_all("#<li><figure><img src='(.*?)' href='JavaScript:void(0);' onclick='return replaceImg(this)' tabindex='(.*?)' class='pretty' width='114' height='88' alt='(.*?)' /></figure></li> #", $yeni, $resimLinkler);
print_r($resimLinkler);
Baglan.php
function Baglan($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USER_AGENT, $_SERVER["HTTP_USER_AGENT"]);
$cikti = curl_exec($curl);
curl_close($curl);
return str_replace(array("\n","\t","\r"), null, $cikti);
}
答案 0 :(得分:2)
你可能最终会解决这个问题,但正则表达式不是正确的工具。
相反,你应该使用DOM解析器:
https://secure.php.net/manual/en/class.domxpath.php
它会让你的生活更轻松
以下是一个例子: