我编写了这个脚本,它可以工作,但只抓住页面上的第一个链接,然后停止:
<?php
$handle = fopen("localurls.csv","r");
while(($line=fgetcsv($handle))!==FALSE) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $line[0],
));
$resp = curl_exec($curl);
curl_close($curl);
$regex_body = '%<a href="(.+?)">%s';
$myBody = preg_match($regex_body, $resp, $matches);
$myFile = "localdownload.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
fwrite($fh, $matches[0]);
fclose($fh);
sleep(2);
}
?>
.csv文件是我有脚本抓取的页面列表。 当我运行这个时,我会在每个页面上看到第一个链接。
<a href="www.google.com">
然后我将它写入txt文件。 有没有人知道一种修改方法,继续在页面上查找所有代码之间的迭代
<a href="
AND
">
我已经考虑过了,并在网上看到了如何实现这一目标,但无济于事。
答案 0 :(得分:1)
您需要使用preg_match_all
代替preg_match
。 preg_match
返回第一次出现,preg_match_all
执行全局正则表达式并搜索所有实例。