台灣最大程式設計社群網站
線上人數
1230
 
會員總數:243460
討論主題:188180
歡迎您免費加入會員
討論區列表 >> PHP >> 想請教PHP抓取網頁特定區塊DIV CLASS的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
想請教PHP抓取網頁特定區塊DIV CLASS的問題
價值 : 100 QP  點閱數:292 回應數:9

樓主

aki
門外漢
0 1
23 1
發送站內信

各位先進好
我是超級新手,如有愚昧之處還敬請見諒><

是這樣的,我想抓這個字典網站的特定區塊
原本是這樣子做的,我做了一個讓使用者可以輸入單字,然後PHP會回傳結果:



↑ 這個可正常執行。

而這個「結果」是去抓字典網站的標題取得文字,基本上是成功的,不過由於單字不只一種結果,而標題只有一個,所以最好的做法不是取標題,而是取得網頁內所有單字的結果,但取標題沒有問題,換成其他區塊卻無法執行。

舉例來說,這個字典網站網址,需要取得「やシ む1め 【後】」、「ィ む0め 【後】」等等的這些小標題。

它的原始碼是:





請問我的PHP該如何修正是好?





不好意思打擾各位先進,如有愚笨之處敬請海涵,非常感謝!

 

搜尋相關Tags的文章: [ PHP ] , [ 抓取網頁 ] , [ 抓特定區塊 ] , [ 抓DIV ] ,
本篇文章發表於2018-09-26 09:26
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

彩虹
檢舉此回應
1. 將 preg_match 改成 preg_match_all
2.改取<div class=NetDicHead>裡面的內容</div>
請參考如下
<pre lang="php"> <?php //----- 擷取的網頁地址 $url = 'https://www.weblio.jp/content/'.$_GET['value']; //----- 讀取網頁源始碼 $fp = file_get_contents($url); //----- 擷取 title 資訊 preg_match_all("/<div class=NetDicHead>.*?<\/div>/", $fp, $match); if (count($match[0])>0) { //印出陣列 // echo "
";
    // print_r($match[0]);
    // echo "";

//逐筆印出
foreach ($match[0] as $key => $value) {
echo $value;
}
}else{
echo "無資料";
}
?>
</pre>
本篇文章回覆於2018-09-27 10:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

彩虹
檢舉此回應
奇怪,程式碼標籤失效,再貼一次試試看

1. 將 preg_match 改成 preg_match_all
2.改取<div class=NetDicHead>裡面的內容</div>
請參考如下

<pre lang="php"> //----- 擷取的網頁地址 $url = 'https://www.weblio.jp/content/'.$_GET['value']; //----- 讀取網頁源始碼 $fp = file_get_contents($url); //----- 擷取 title 資訊 preg_match_all("/<div class=NetDicHead>.*?<\/div>/", $fp, $match); if (count($match[0])>0) { //印出陣列 // echo "
";
    // print_r($match[0]);
    // echo "";

//逐筆印出
foreach ($match[0] as $key => $value) {
echo $value;
}
}else{
echo "無資料";
}
</pre>
本篇文章回覆於2018-09-27 10:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

彩虹
檢舉此回應
再一次....
1. 將 preg_match 改成 preg_match_all
2.改取<div class=NetDicHead>裡面的內容</div>
請參考如下

本篇文章回覆於2018-09-27 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

淺水員
檢舉此回應
貼程式碼時,如果程式碼中有</pre>,是不是就會出錯呢?
本篇文章回覆於2018-09-27 11:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

彩虹
檢舉此回應
To #潛水員:
沒錯,的確是程式碼裡面只要含有 <pre> ,就會遇到問題
情形大概會像這樣
[quote]
<pre lang="php"> ...
...
...
</pre>
[/quote]
本篇文章回覆於2018-09-27 11:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

彩虹
檢舉此回應

<pre lang="php">
...
<pre>...</pre>
...
</pre>
本篇文章回覆於2018-09-27 11:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

淺水員
檢舉此回應
連 lang="xml" 也會有問題嗎?
感覺可以回報 bug
本篇文章回覆於2018-09-27 13:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
這個bug其實很早就知道了。
所以在貼程式碼會盡量避免用pre標簽
本篇文章回覆於2018-09-28 16:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

aki
檢舉此回應
感謝解答!確實順利執行!已解決問題並奉上"最有價值解答" ! 謝謝^^
本篇文章回覆於2018-09-28 16:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.