PHP爬虫实现周末娱乐活动信息抓取有哪些技巧?

2026-04-01 06:511阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计948个文字,预计阅读时间需要4分钟。

PHP爬虫实现周末娱乐活动信息抓取有哪些技巧?

已经连续说了几天关于vim的经验了,今天周末给家人简单讲讲vim编辑器。今天让大家轻松一下,让我们一起研究研究PHP如何做爬虫。虽然PHP不像Python和Java那样流行,但仍有现成的工具包可供使用。

已经连着说了好几天的vim了,今天周末给大家很枯燥的讲了vim编辑器了,今天给大家放松一下,让我们来一起研究研究PHP怎么做爬虫,虽说php不如当先流行的python和java有现成的工具包,但是这不代表PHP不可以做爬虫!下面开始!

PHP中有三种比较常见的方法可以进行做爬虫任务,分别为

  • get+file_get_contents()
  • 利用CURL
  • Snoopy

file_get_contents 该函数是可以把整个web网页当做文件进行读取,后续可以利用正则进行匹配所需要的数据。

file_get_contents(path,incude_path,context,start,max_length) //path 必需,需要读取的文件 //inculde_path 可选,如果也需要在include_path中寻找的还,可将该参数设为1 //context,可选,文件的句柄环境 //start 可选,规定在文件中开始读取的位置 //max_length 可选。规定读取的字节数 //实例 function GetData1($url){ $datas=file_get_contents($url);//发送请求,并返回获取到的页面数据 return $datas; } $url="zhihu.com"; print_r(GetData1($url));

CURL方式

第二种爬取数据的途径,通过curl库,我们可以向指定的网页发送数据(该网页没有对爬虫的检测机制),当然如果存在也不影响,可以通过curl的函数 curl_setopt($ch,option,value)进行伪装

但是该类型比较适合没有反扒机制的网站,如果有的话我们要伪装请求头。

function DetData2($url){ $ch=curl_init($url); //中间可以参考curl的各类配置进行设置get/post以及各类请求头进行伪装自己 $datas=curl_exec($ch); return $datas; } //实例 function GetData2($url){ $curl=curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环 curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0); // 获取的信息以文件流的形式返回 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); $tmpInfo = curl_exec($curl); // 执行操作 if (curl_errno($curl)) { echo 'Errno'.curl_error($curl);//捕抓异常 } curl_close($curl); return $tmpInfo; } $url = "zhihu.com"; $result = getData($url); var_dump($result);

Snoopy

Snoopy,是一个及其强大的库,使用该库是需要下载对应的文件的 地址:sourceforge.net/projects/snoopy/files/latest/download ,大家可以直接使用进行操作。

include("Snoopy.php");//使用时不要忘记引入Snoopy类库 function GetData3($url){ $ch=new Snoopy;//实例化 $ch->agent = "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-CN; Redmi 6 Pro Build/OPM1.171019.019) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";//设置浏览器环境 $ch->referer="m.ting22.com/ting/1547-180.html"; $ch->fetch($url); return $ch->results;//返回数据 }

是不是很简单,代码就这么几行,但是这个还有更NB的,这个库可以去掉一些正则规则,它具有自动提取功能的。

$snoopy->fetchtext($url);//获取网页数据的全部文本数据 $snoopy->fetchlinks($url);//获取网页数据的全部链接 $snoopy->fetchform($url); //获取表单

这个我也是在研究阶段,大家可以没事的时候研究研究。好了最后祝大家周末愉快吧,马上中秋了我依然也会持续更新的。

PHP爬虫实现周末娱乐活动信息抓取有哪些技巧?
标签:PHP

本文共计948个文字,预计阅读时间需要4分钟。

PHP爬虫实现周末娱乐活动信息抓取有哪些技巧?

已经连续说了几天关于vim的经验了,今天周末给家人简单讲讲vim编辑器。今天让大家轻松一下,让我们一起研究研究PHP如何做爬虫。虽然PHP不像Python和Java那样流行,但仍有现成的工具包可供使用。

已经连着说了好几天的vim了,今天周末给大家很枯燥的讲了vim编辑器了,今天给大家放松一下,让我们来一起研究研究PHP怎么做爬虫,虽说php不如当先流行的python和java有现成的工具包,但是这不代表PHP不可以做爬虫!下面开始!

PHP中有三种比较常见的方法可以进行做爬虫任务,分别为

  • get+file_get_contents()
  • 利用CURL
  • Snoopy

file_get_contents 该函数是可以把整个web网页当做文件进行读取,后续可以利用正则进行匹配所需要的数据。

file_get_contents(path,incude_path,context,start,max_length) //path 必需,需要读取的文件 //inculde_path 可选,如果也需要在include_path中寻找的还,可将该参数设为1 //context,可选,文件的句柄环境 //start 可选,规定在文件中开始读取的位置 //max_length 可选。规定读取的字节数 //实例 function GetData1($url){ $datas=file_get_contents($url);//发送请求,并返回获取到的页面数据 return $datas; } $url="zhihu.com"; print_r(GetData1($url));

CURL方式

第二种爬取数据的途径,通过curl库,我们可以向指定的网页发送数据(该网页没有对爬虫的检测机制),当然如果存在也不影响,可以通过curl的函数 curl_setopt($ch,option,value)进行伪装

但是该类型比较适合没有反扒机制的网站,如果有的话我们要伪装请求头。

function DetData2($url){ $ch=curl_init($url); //中间可以参考curl的各类配置进行设置get/post以及各类请求头进行伪装自己 $datas=curl_exec($ch); return $datas; } //实例 function GetData2($url){ $curl=curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环 curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0); // 获取的信息以文件流的形式返回 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); $tmpInfo = curl_exec($curl); // 执行操作 if (curl_errno($curl)) { echo 'Errno'.curl_error($curl);//捕抓异常 } curl_close($curl); return $tmpInfo; } $url = "zhihu.com"; $result = getData($url); var_dump($result);

Snoopy

Snoopy,是一个及其强大的库,使用该库是需要下载对应的文件的 地址:sourceforge.net/projects/snoopy/files/latest/download ,大家可以直接使用进行操作。

include("Snoopy.php");//使用时不要忘记引入Snoopy类库 function GetData3($url){ $ch=new Snoopy;//实例化 $ch->agent = "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-CN; Redmi 6 Pro Build/OPM1.171019.019) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";//设置浏览器环境 $ch->referer="m.ting22.com/ting/1547-180.html"; $ch->fetch($url); return $ch->results;//返回数据 }

是不是很简单,代码就这么几行,但是这个还有更NB的,这个库可以去掉一些正则规则,它具有自动提取功能的。

$snoopy->fetchtext($url);//获取网页数据的全部文本数据 $snoopy->fetchlinks($url);//获取网页数据的全部链接 $snoopy->fetchform($url); //获取表单

这个我也是在研究阶段,大家可以没事的时候研究研究。好了最后祝大家周末愉快吧,马上中秋了我依然也会持续更新的。

PHP爬虫实现周末娱乐活动信息抓取有哪些技巧?
标签:PHP