php可以抓取网页数据吗(2019年我接触到PHP爬取的时候,我最开始是懵的 )

优采云 发布时间: 2021-12-03 08:04

  php可以抓取网页数据吗(2019年我接触到PHP爬取的时候,我最开始是懵的

)

  2019年接触PHP爬虫的时候,一开始是懵的。有人用php写爬虫吗?

  一个月后,嗯~世界上最好的语言写出世界上最好的爬虫,太香了!而7月15日晚上,也就是每天的加班,做完手头的下班后,就想着写php然后撤了。我写完之后才九点钟。我值得这么早下班吗?所以,这个博客已经出炉了!

  

  简单的说,我用PHP抓取网页数据的三种常用方法,不光是分享,也​​是我自己的一个回顾。

  希望对你有所启发和帮助:)。print_r("源代码在文末");

  1.PHP file_get_contents()

  file_get_content() 函数早在 PHP4 就出现了。该函数可以将整个文件读入一个字符串。使用语法为 file_get_contents(path,include_path,context,start,max_length);

  这是一个屏幕截图:

  

  那么如何使用这个功能来抓取网页数据呢?如果这个文件在线,这个文件可以读入str吗?答案是肯定的。所以简单一句话就可以得到网页的源码:(当然这个不是js渲染的,爬取网站)

   function get_content()

{

$html_source = file_get_contents($this->url);

return $html_source;

}

  2.PHP 卷曲

  PHP curl 应该是我当时用得最多的PHP爬取方式了。

  使用cURL处理很多复杂的页面,比如表单提交、FTP上传、HTTPS认证等;

  这里放个链接,想深入的同学可以看一下用法。

   function get_curl()

{

//初始化

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $this->url);

//设置超时

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

// 如果是请求https时,要打开下面两个ssl安全校验

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//表示string输出,0为直接输出;

curl_setopt($ch,CURLOPT_HEADER,0);

curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headerArray);

$html_source = curl_exec($ch);

curl_close($ch);

// $result = json_decode($output,true); 请求部分接口会返回json可以用到

return $html_source;

}

  3.PHP Snoopy.class.php采集

  百度百科说:

  

  这很好!然后我们就可以下载Snoopy.class.php(私信),导入就可以了。

  include('Snoopy.class.php');

function getsnoopy()

{

$snoopy = new Snoopy();

$snoopy->fetch($this->url);

$html_source = $snoopy->results;

return $html_source;

}

  当然,这里只是Snoopy最简单的用法之一,抢源码。

  抓取源代码后,使用regular,或者xpath,或者其他提取方式抓取你想要的数据。这里不说了,21:48,我要下班了。

  //所有title的正则表达式

$parament = "/.*?/";

preg_match_all($parament,$html_source,$matchs);

print_r($matchs);

  就写这些下班就走。

  

  4. 爬取结果和源码

  

  对!你没看错,我懒得处理数据……有些事情,结果并不重要,对吧?重要的是过程。

  附上代码:

<p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线