1. 程式人生 > >php通過Xpath獲取CSDN的Dom元素

php通過Xpath獲取CSDN的Dom元素

Xpath的Dom分析真的比自己寫正則去匹配Dom要高效很多,而要使用php的XpathDom,這裡我使用的是Wamp,要開啟php配置的extensions的openSSL,否則在獲取網頁的Dom時會報錯,然後我們所需的某個元素的Xpath可以通過瀏覽器,例如谷歌瀏覽器和火狐瀏覽器按F12調出網頁的element控制檯,(這裡學過前端的都會的),然後右鍵自己想要獲得的元素,Copy Xpath複製這個元素的Xpath


現在我們已經獲取了元素的Xpath了,示例我們獲取的Xpath為:

//*[@id='mainBox']/main/div[2]/div[2]/h4/a

這裡我們是要獲取一個列表,所以改為//*[@id='mainBox']/main/div[2]/div/h4/a

<?php
for($j=1 ;$j<=2;$j++){
    $content= file_get_contents('https://blog.csdn.net/SIRENloazhang/article/list/'.$j.'?');
    $document = new DOMDocument();
    $document->strictErrorChecking = false;
    
    /* $tidy     = new tidy;
    $content = $tidy->repairString($content);
    $content = mb_convert_encoding($content, 'UTF-8'); *//*這裡就不用Tidy了*/
    
    @$document->loadhtml($content); /*@是一定要給的*/
    $xpath = new DOMXPAth($document);
    $num = 0;
    $elements= $xpath->query("//*[@id='mainBox']/main/div[2]/div/h4/a");
    if($elements->length!=0){
        for ($i = 0; $i < $elements->length; $i++) {
            $element = $elements->item($i);
            $url = $element->getAttribute('href');
            print_r($url.'<br/>');
            $num++;
        }
    }else{
        echo "讀取完畢!!!";
    }
    
}

?>

執行結果:

相關推薦

php通過Xpath獲取CSDN的Dom元素

Xpath的Dom分析真的比自己寫正則去匹配Dom要高效很多,而要使用php的XpathDom,這裡我使用的是Wamp,要開啟php配置的extensions的openSSL,否則在獲取網頁的Dom時會報錯,然後我們所需的某個元素的Xpath可以通過瀏覽器,例如谷歌瀏覽器和火

【RF庫XML測試】通過xpath查找元素的說明

current 允許 -1 匹配 元素 如果 jython image ren Tag names:當僅使用1個tag的時候,xpath匹配具有該標簽名稱的所有直接子元素。 Paths:通過/符號連接tag名稱,例如second/child將匹配父元素second下所有的

PHP通過URL獲取文件大小

files fsockopen func get class eof parse file pty function getFileSize($url){ $url = parse_url($url); if($fp = @fsoc

php 通過curl獲取遠程數據,返回的是一個數組型的字符串,高手幫忙如何將這個數組類型的字符串變成數組。

bsp 選項 con 獲取 pan 如果 clas exe transfer 如 Array([0] => Array([0] => Array([kd_status] => 已簽收[kd_time] => 2014-04-30 18:59:43 [

Python通過xpath查找元素通過selenium讀取元素信息

class bdr 查找 blog 信息 style body type from #coding:utf-8 from selenium import webdriver import time url =‘http://www.baidu.com‘ driver =

原生態php通過dom獲取div/table裡面的內容,不用正則!

原生態php獲取網頁標籤裡面的內容,不用外掛!不用正則,直接一把摳出來! error_reporting(E_ALL); $out=_getUrl('http://www.gdczepb.gov.

PHP通過curl獲取介面URL的資料

<?php  $weather = curl_init();              curl_setopt($weather,CURLOPT_URL,"https://api.pc2801.

PHP 通過ip獲取國家及地址方法集合

一、通過http請求淘寶和新浪的介面進行線上查詢 優點:呼叫簡單方便程式碼量少   缺點:在無網路的情況下無法查詢。 print_r(get_area('223.67.235.28')); function get_area($ip = ''){ if($ip =

JavaScript中通過id獲取標籤元素的值和獲取文字框的值

form表單中有下面的程式碼: <form method="post" id="" action="">     <input type="text" id="username" name="username" />    <br>  

php通過$_SERVER獲取當前頁面完整URL地址

使用PHP編寫程式的時候,我們常常想要獲取當前頁面的URL。下面提供一個用於獲取當前頁面URL的函式以及使用方法:示例一: <?php // 說明:獲取完整URL function curPageURL() { $pageURL = 'http';

PHP通過API獲取手機號碼歸屬地

該API介面自 2011年 SAE平臺上線穩定執行至今,增加了17號段的支援,歡迎各種採集注限制 ,併發10 詳細使用說明 介面地址:http://appyun.sinaapp.com/index.php?app=mobile&controller=index

python3 xpath獲取同級元素的各種方法

XPath軸(XPath Axes)可定義某個相對於當前節點的節點集: 1、child 選取當前節點的所有子元素 2、parent 選取當前節點的父節點 3、descendant 選取當前節點的所有後代元素(子、孫等) 4、ancestor 選取當前節點的所有先輩(父、祖父等

beautifulsoup通過id獲取指定元素內容

<tr style="background-color:#fff;"> <td colspan="2" align=left valign="top"> <table id="zoom2" width="94%" bor

PHP通過內置函數memory_get_usage()獲取內存使用情況

sage 實例 linux 十分 get sts nbsp cti mic PHP內置函數memory_get_usage()能返回當前分配給PHP腳本的內存量,單位是字節(byte)。在WEB實際開發中,這些函數非常有用,我們可以使用它來調試PHP代碼性能。 memory

通過request獲取網頁資訊 通過BeautifulSoup剖析網頁元素

獲取網頁 alink his odi res req 特定 bsp css屬性 import requests newsUrl =‘http://news.sina.com.cn/china/‘ res = requests.get(newsUrl) res.encod

PHP 通過設置表單元素name屬性生成數組

log 判斷 存儲 move 括號 是否 res 查詢 數據表 <form method="post" action="<?php $_SERVER[‘PHP_SELF‘]; ?>"> //使用自引用表單,$_SERVER[‘PHP_SELF‘]變

python--通過xpath相對節點位置查找元素(續)

xpath相對節點 元素查找 相對節點位置查找方法 父節點 兄弟節點 之前寫過相對父元素及下一個兄弟元素的方法。 這次補充一下xpath相對節點位置查找元素的所有方法。例子就不舉了,自己可以去練練。 xpath相對節點查找方法: 1、xpath(‘./ancestor::*‘)查找當前節點

前端——通過元素獲取同級元素的name屬性

今天在寫專案的時候需要將一個<img>的name值傳送給controller,相應的htmll程式碼如下: <div class="seller_good"> <a href="#"><img class="shoe_img" id="shoe_img

通過getElementsByClassName獲取元素集合的相容性問題解決方案

通過getElementsByClassName獲取元素集合的相容性問題解決方案 方案一:使用方案一後,通過document.getElementsByClassName()函式來獲取類名對應的元素集合 if(!document.getElementsByClassName){ //

PHP--通過公眾號獲取使用者微信資訊

<?php namespace My\Controller; //use Common\Controller\HomeCommonController; use Think\Controller; /*  * To change this license hea