本篇内容介绍了“使用PHP编写爬虫的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说到爬虫,大家的第一印象就会想到python, 但是P
本篇内容介绍了“使用PHP编写爬虫的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
说到爬虫,大家的第一印象就会想到python, 但是Python并不是所有人都会的, 那么是否可以使用其他的语言来编写爬虫呢? 当然是可以的,下面介绍一下如何使用php编写爬虫。
获取页面html内容
使用函数 file_get_contents 把整个文件读入一个字符串中。
file_get_contents(path,include_path,context,start,max_length);file_get_contents('https://fengkui.net/');
这样就可以将整个页面的html内容,读入一个字符串中,然后进行解析了
使用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.*?\".*?>(.*?)<\/$tag>/is"; preg_match_all($regex,$html,$matches,PREG_PATTERN_ORDER); $data = isset($matches[1][0]) ? $matches[1][0] : ''; return $data;}$str = '<div class="feng">冯奎博客</div>';$value = get_tag_data($str, 'div', 'class', 'feng');
使用Xpath解析数据
XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 具体使用方法及相关介绍查看百度百科(XPath) 使用方法:
function get_html_data($html,$path,$tag=1,$type=true){ $dom = new \DOMDocument(); @$dom->loadHTML("<?xml encoding='UTF-8'>" . $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编写爬虫的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
--结束END--
本文标题: 使用PHP编写爬虫的方法
本文链接: https://www.lsjlt.com/news/298302.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0