软件下载

php数据采集方法?(教你怎么使用php抓取想要的信息)

软件下载 投稿 2022-08-15 10:50:53 浏览

爬虫相信大家并不陌生,说到爬虫大家可能第一时间想到的是python,但是php作为爬虫抓取数据也是很不错的,下面让我为大家说说怎么操作。

1、获取整个数据:

可以通过file_get_contents和curl来获取网页的信息。

file_get_contents案例:

$content = file_get_contents("要爬取的网址");

curl案例:

$url = "要爬取的网址";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36');

curl_setopt($ch, CURLOPT_TIMEOUT,10);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,15);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_NOBODY,false);

$content = curl_exec($ch);

curl_close($ch);

curl模式好很多,一般推荐用这种模式。

2、获取指定的信息。

通过第一步后,我们会获取到整个页面的数据,把它存入一个变量$content里面,这时候我们需要就可以在这个变量里用正则表达式来获取我们的指定信息!

获取页面的标题案例:

preg_match("|<title>(.*?)</title>|i", $content,$r);

$title = $r[1];

$title就是我们要获取的标题。当然,获取标题只是举例而已,你可以根据自己的需求获取其他的信息,比如手机号、微信号、qq号等等资料。

3、获取页面上的网址用于循环抓取

前面两步只抓取一个页面,如果要做到无限的爬虫效果,则要把页面上的链接保存下来存入数据库内,做循环的抓取。

也是用到正则,直接上代码:

$site=substr($url,0,strpos($url,"/",8));

$base=substr($url,0,strrpos($url,"/")+1);

$pattern="|href=['\"]?([^ '\"]+)['\" ]|U";

preg_match_all($pattern,$content, $regArr, PREG_SET_ORDER);

for($i=0;$i<count($regArr);$i++){

if(!eregi("://",$regArr[$i][1]))

if(substr($regArr[$i][1],0,1)=="/")

$url_array[] = $site.$regArr[$i][1];

else

$url_array[] = $base.$regArr[$i][1];

else

$url_array[] = $regArr[$i][1];

}

$url_array就是链接的数组,然后通过foreach历遍数组存入数据库里面,每次调用一条数据来爬取数据,又存新的链接进去,就可以做到无限循环抓取下去了。

有什么疑问和不懂的地方,欢迎在评论区留意交流!

「真诚赞赏,手留余香」

求资源网

真诚赞赏,手留余香

使用微信扫描二维码完成支付

继续浏览有关编程的文章
发表评论
留言与评论(共有 0 条评论)
   
验证码:
版权声明

求资源网所发布的一切破解补丁,软件,以及其他分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。
否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。