2012-07-18 113 views
-1

我想從中得到html頁面的標題和鏈接鏈接:解析標題和html頁面

<div class="gs_r"> 
    <h3 class="gs_rt"> 
     <span class="gs_ctc">[BOOK]</span> 
     <a href="http://example.com" onmousedown="return scife_clk(this.href,'','res','1')">titleA</a> 
    </h3> 
    <div class="gs_ggs gs_fl"> 
     <a href="http://exampleA.pdf" onmousedown="return scife_clk(this.href,'gga','gga','1')"> 

我怎樣才能得到呢?

下面的代碼:

<?php 
include 'simple_html_dom.php'; 
$url = 'http://example.com'; 
$html = file_get_html($url); 
//get the first link 
foreach($html->find('span[class=gs_ctc]')as $Link){ 
echo $link; 
} 
foreach($html->find('div[class=gs_ggs gs_fl]')as $docLink){ 
echo $docLink; 
} 

?> 
+1

到目前爲止所做的工作 – diEcho 2012-07-18 03:04:48

+0

您是否嘗試了XML解析解決方案? – 2012-07-18 03:07:08

+2

從什麼html頁面?你的問題寫得不好,你的代碼不完整。請考慮改進它,這樣你可以得到更好的幫助。而且,到目前爲止你做了什麼/嘗試了什麼。 – LeeR 2012-07-18 03:07:33

回答

1

對於第一個環節,它的<span>的兄弟姐妹。試試這個:

//get the first link 
foreach($html->find('span[class=gs_ctc]') as $link){ 
    $link = $link->next_sibling(); 
    echo $link->plaintext; 
    echo $link->href; 
} 

至於第二連桿,它的<div>的孩子:

foreach($html->find('div[class=gs_ggs gs_fl]') as $docLink){ 
    $link = $docLink->first_child(); 
    echo $link->href; 
} 

編輯:第二連桿與第一分組,所以你可以試試這個:

foreach($html->find('span[class=gs_ctc]') as $link){ 
    foreach($link->parent()->parent()->find('div[class=gs_ggs gs_fl]') as $docLink){ 
     $link1 = $link->next_sibling(); 
     $link2 = $docLink->first_child(); 
     if(preg_match('/\.pdf$/i', $link2->href) === 1){ 
      echo $link1->plaintext; 
      echo $link1->href; 
      echo $link2->href; 
     } 
    } 
} 
+0

謝謝@火箭..: )我已經嘗試過了,但我只獲得了標題,我無法獲取鏈接。我試過這個網址='http://scholar.google.com/scholar?hl=zh-CN&q=data+mining&btnG=&as_sdt=1%2C5&as_sdtp=' – 2012-07-18 03:36:18

+0

@ user1495052:愚蠢的是,它是'href',而不是' src'。 – 2012-07-18 03:52:19

+0

哦,太棒了!非常感謝你@火箭! :) – 2012-07-18 03:57:29