作者 主題: 想要抓取書名  (閱讀 3361 次)

0 會員 與 1 訪客 正在閱讀本文。

Quota

  • 活潑的大學生
  • ***
  • 文章數: 352
    • 檢視個人資料
    • http://home.kimo.com.tw/jiannrongkimo/
想要抓取書名
« 於: 2011-05-25 19:57 »
我想要抓取書名,以國圖為例:
http://ccs.ncl.edu.tw/ccsenews/b/epaper_content_show.asp?EpaperID=65&ContentTypeID=4&SerialNo=2#Detail4_1

參考Google上提供的語法,我設計如下:
代碼: [選擇]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>顯示資料</title>
</head><body>
<?

$text=file_get_contents('http://ccs.ncl.edu.tw/ccsenews/b/epaper_content_show.asp?EpaperID=65&ContentTypeID=4&SerialNo=2#Detail4_1');

preg_match('/<span [^>]*class="font_s5"[^>]*>(.*?) <\/span>/si',$text,$match);

print($match[0]);


?></body></html>


但是內容是空白的,請問我是否有遺漏若干重點呢?謝謝~

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: 想要抓取書名
« 回覆 #1 於: 2011-05-25 20:44 »
我想要抓取書名,以國圖為例:
http://ccs.ncl.edu.tw/ccsenews/b/epaper_content_show.asp?EpaperID=65&ContentTypeID=4&SerialNo=2#Detail4_1

參考Google上提供的語法,我設計如下:
代碼: [選擇]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>顯示資料</title>
</head><body>
<?

$text=file_get_contents('http://ccs.ncl.edu.tw/ccsenews/b/epaper_content_show.asp?EpaperID=65&ContentTypeID=4&SerialNo=2#Detail4_1');

preg_match('/<span [^>]*class="font_s5"[^>]*>(.*?) <\/span>/si',$text,$match);

print($match[0]);


?></body></html>


但是內容是空白的,請問我是否有遺漏若干重點呢?謝謝~

你的 reg 裡多了幾個空白,將空白刪掉試試

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
回覆: 想要抓取書名
« 回覆 #2 於: 2011-05-26 06:40 »
怎麼不用DOM抓?
lifeIsFunWithPHP.

Quota

  • 活潑的大學生
  • ***
  • 文章數: 352
    • 檢視個人資料
    • http://home.kimo.com.tw/jiannrongkimo/
回覆: 想要抓取書名
« 回覆 #3 於: 2011-05-26 09:47 »
怎麼不用DOM抓?


請問DOM如何抓取?
謝謝

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
回覆: 想要抓取書名
« 回覆 #4 於: 2011-05-26 10:15 »
php dom html

直接fetch html 來regEx filter,太原始了啦。
lifeIsFunWithPHP.

ricky

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 669
    • 檢視個人資料
    • Ricky 碎碎唸
回覆: 想要抓取書名
« 回覆 #5 於: 2011-05-26 10:16 »
google phpquery
我的symfony作品:YOMOpets 寵物誌
有興趣可以一起來討論symfony喔
我的部落格:http://ricky.ez2.us/

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: 想要抓取書名
« 回覆 #6 於: 2011-05-26 16:31 »
php dom html

直接fetch html 來regEx filter,太原始了啦。

會太原始喔, 應該還好啦
熟悉 regular expression 語法
只要一行就能抓到想要的資料  :D

KT

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
    • 我愛墾丁
回覆: 想要抓取書名
« 回覆 #7 於: 2011-05-27 10:40 »
修改如下:
代碼: [選擇]
<meta http-equiv="Content-Type" content="text/html; charset=big5">
(原始資料是 big5?)

代碼: [選擇]
preg_match_all('/<span.*?class="font_s5".*?>(.*?)<\/span>/i',$text,$matches);
echo "<pre>";
print_r($matches[0]);
echo "</pre>";