Php 使用cURL和Regex进行网站抓取
我正在尝试使用cURL和Regex废弃这些类别。但是我的代码只提取了其中一个类别(艺术、古董和收藏品) 这是我的代码:Php 使用cURL和Regex进行网站抓取,php,regex,curl,Php,Regex,Curl,我正在尝试使用cURL和Regex废弃这些类别。但是我的代码只提取了其中一个类别(艺术、古董和收藏品) 这是我的代码: <?php $curl = curl_init('http://www.lelong.com.my/Auc/List/BrowseAll.asp'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $page = curl_exec($curl); if(curl_errno($curl)) // check fo
<?php
$curl = curl_init('http://www.lelong.com.my/Auc/List/BrowseAll.asp');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$page = curl_exec($curl);
if(curl_errno($curl)) // check for execution errors
{
echo 'Scraper error: ' . curl_error($curl);
exit;
}
curl_close($curl);
$regex = '/<span class=CatLevel1>(.*?)<\/a>/s';
if ( preg_match($regex, $page, $list) )
echo $list[0]. "<br>";
else
print "Not found";
?>
有人能帮我更正这段代码以提取所有类别(没有数字)吗?我已经在这上面呆了很长时间了。
谢谢
示例输出:艺术、古董和收藏品
B2B和工业产品
婴儿
等等……这里是一个使用DOMDocument和DOMXPath类的工作代码
$grep = new DoMDocument();
@$grep->loadHTMLFile("http://www.lelong.com.my/Auc/List/BrowseAll.asp");
$finder = new DomXPath($grep);
$class = "CatLevel1";
$nodes = $finder->query("//*[contains(@class, '$class')]");
foreach ($nodes as $node) {
$span = $node->childNodes;
echo $span->item(0)->nodeValue."<br>"
}
$grep=newdomdocument();
@$grep->loadHTMLFile(“http://www.lelong.com.my/Auc/List/BrowseAll.asp");
$finder=newdomxpath($grep);
$class=“CatLevel1”;
$nodes=$finder->query(“/*[包含(@class,$class')]”);
foreach($node作为$node){
$span=$node->childNodes;
echo$span->item(0)->nodeValue。“
”
}
我阅读了对您的问题的评论,其中建议了一种不同的方法和一种可能更适合这份工作的备选答案,但如果您仍想这样做,则需要进行全局搜索()因此,当它找到第一个匹配项,然后使用循环打印保存结果的数组内容时,它不会停止。我没有使用cURL,也无法测试它,php也不是我的强项,但代码应该是:
if ( preg_match_all($regex, $page, $list) )
$i = 0;
while(isset($list[1][$i])) {
echo $list[1][$i]. "<br>";
$i++;
}
else
print "Not found";
if(preg_match_all($regex,$page,$list))
$i=0;
while(isset($list[1][$i])){
echo$list[1][$i]。“
”;
$i++;
}
其他的
打印“未找到”;
很抱歉代码中有任何错误。没问题。谢谢你的帮助