作者poeta (鍵盤詩人)
看板PHP
標題[請益] 擷取網頁內容時,想把不要的內容排除
時間Mon Oct 19 16:52:13 2015
我現在要做一個事情,是分析歌詞裡常出現的詞句。
當然首先就要先收集大量的歌詞,我就去常見的歌詞網來
找,他們的歌詞都有寫在網頁的meta裡,像這樣
<meta name="description" content="八卦 黃安作曲 八卦八卦我牽掛" />
所以很容易用 get_meta_tags就可以截取出來,我擷取出
來以後,先把每一句歌詞後面的空白變成<br>,然後每遇
到一個<br>,就把它放入陣列裡面。這樣echo陣列,就會
印出每一句歌詞。
但是印出陣列時,我發現除了歌詞之外,還會擷取到
詞曲作者的資訊,這不是我需要的,大概會變成這樣:
作詞:黃安<br>
演場:白安<br>
/<br>
李慶安<br>
導演:李安<br>
八卦八卦我牽掛<br>
找不到你爸爸<br>
找不到你媽媽<br>
找不到你全家<br>
我目前遇到的兩個問題是,有兩個演唱人時,原本他是用
/ 和空白區隔,都被我的<br>處理到了。另一個問題就是
上面提到的,作曲人資訊我完全不需要,有什麼辦法可以
把那些資訊剃除掉呢?
目前想到的方法是,把導演、作詞、作曲等等所有的
資訊都收集起來,做一個判斷式,遇到了就不輸出。可是
這就面臨前一段指出的,雙演唱人誤判的問題。而不先處
理空白變成<br>,把歌詞分段輸入陣列,就不能做判斷,
所以就卡關了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.232.160.76
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1445244735.A.3C0.html
※ 編輯: poeta (36.232.160.76), 10/19/2015 16:52:45
推 rockmanalpha: 直接擷取網頁中的會不會比較好 因為顯示在網頁的 10/19 17:06
→ rockmanalpha: 都有換行 10/19 17:06
推 rockmanalpha: 我意思是從<body></body>裡面擷取 10/19 17:08
→ rockmanalpha: 而如果在meta裡面抓 用正則來處理比較好 10/19 17:10
推 kuoll: substr截取前兩個字 如果==作詞or作曲or編曲 那一項就不 10/19 23:18
→ kuoll: 要echo就好了 至於/的問題 你先把" / "取代成"/" 再把空 10/19 23:18
→ kuoll: 格換成<br>會不會比較容易一點? 10/19 23:19
→ poeta: 對對,一時沒想到,謝謝兩位。 10/20 02:56
推 Peruheru: 作詞 作曲 編曲 原作 翻唱 客串 10/20 09:30
→ Peruheru: 如果有歌詞真的是"編曲"開頭就掛了,建議用編曲: 10/20 09:31