获取页面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.*?".*?>(.*?)$tag>/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编写爬虫的方法的详细内容,更多请关注考高分网其它相关文章!



