我希望得到一个url的确切列表,其中有一个项目列表存储在数据库中,并使用它之后。问题是我只得到了第一项。我想要这一页的清单,然后翻到第二页,第三页,第四页……如果可能的话,删掉所有的链接。
我想获得的http:..............html的帖子和标题,然后转到下一页,获得所有的页面等,并将它们存储在数据库中。
下面是我使用的代码:$url ='http://newyork.craigslist.org/search/jjj?addFour=part-time';
$timeout = 10;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
function get_matched($pattern,$data)
{
preg_match($pattern,$data,$match);
return $match[1];
}
$pattern= "/<p>(.*?)<'/p>/";
$caty= get_matched($pattern,$data);
echo "$caty";
我该怎么做?
-
preg_*
使用错误preg_match
将只尝试找到一个匹配,然后返回-您正在寻找preg_match_all
,因为您想要多个匹配。- PHP: preg_match - Manual
-
PHP: preg_match_all - Manual
-
循环/递归在哪里?
如果你想这样做,你需要某种循环或递归函数来保持从新发现的链接中获取数据,并且那里的数据应该按照相同的模式获取。
网上有很多关于如何编写一个简单的scraper的资源,其中包括:
- 如何在PHP中制作一个简单的网络爬虫?
- 构建一个基本的网络爬虫从页面中提取信息
这是最好的链接: