栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

一文详解使用PHP编写爬虫的方法

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一文详解使用PHP编写爬虫的方法

说到爬虫,大家的第一印象就会想到Python, 但是Python并不是所有人都会的, 那么是否可以使用其他的语言来编写爬虫呢? 当然是可以的,下面介绍一下如何使用PHP编写爬虫。

获取页面html内容

1、使用函数 file_get_contents 把整个文件读入一个字符串中。

file_get_contents(path,include_path,context,start,max_length);
file_get_contents('https://fengkui.net/');

这样就可以将整个页面的html内容,读入一个字符串中,然后进行解析了

2、使用CURL进行请求,获取html

function curlHtml($url)
{
    $curl = curl_init();
    curl_setopt_array($curl, array(
 CURLOPT_URL     => "{$url}",
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_ENCODING=> "",
 CURLOPT_MAXREDIRS      => 10,
 CURLOPT_TIMEOUT => 30,
 CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST  => "GET",
 CURLOPT_HTTPHEADER     => array(
     "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*
function get_tag_data($html,$tag,$attr,$value){
    $regex = "/<$tag.*?$attr=".*?$value.*?".*?>(.*?)/is";
    preg_match_all($regex,$html,$matches,PREG_PATTERN_ORDER);
    $data = isset($matches[1][0]) ? $matches[1][0] : '';
    return $data;
}
$str = '冯奎博客';
$value = get_tag_data($str, 'div', 'class', 'feng');

2、使用Xpath解析数据

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 具体使用方法及相关介绍查看百度百科(XPath) 使用方法:

function get_html_data($html,$path,$tag=1,$type=true)
{
    $dom = new DOMdocument();
    @$dom->loadHTML("" . $html); // 从一个字符串加载HTML并设置UTF8编码
    $dom->normalize(); // 使该HTML规范化
    $xpath = new DOMXPath($dom); //用DOMXpath加载DOM,用于查询
    $contents = $xpath->query($path); // 获取所有内容
    $data = [];
    foreach ($contents as $value) {
 if ($tag==1) {
     $data[] = $value->nodevalue; // 获取不带标签内容
 } elseif ($tag==2) {
     $data[] = $dom->saveHtml($value);  // 获取带标签内容
 } else {
     $data[] = $value->attributes->getNamedItem($tag)->nodevalue; // 获取attr内容
 }
    }
    if (count($data)==1) {
 $data = $data[0];
    }
    return $data;
}

推荐学习:《PHP视频教程》

以上就是一文详解使用PHP编写爬虫的方法的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/262361.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号