[請益] 爬蟲 preg_match_all 問題

作者: liisi (小心一點)   2018-04-24 00:31:45
各位版友晚安
有問題想請教各位
假設 $html 是網頁的 html
我要抓在這些class底下 <a> 裡面 href的連結 (會有多筆)
<div class="a1_class">
<h3 class="a2_class a3_class">
<a href="http://xxxxxxxxxxxxxxxxxx">文字文字文字</a>
<h3>
$preg = '/<div class="a1_class">.*?<h3 class="a2_class a3_class">.*?
<a .*? href="(.*?)">/s</a>.*?</h3>';
preg_match_all($preg,$html,$match);
可是我 輸出 $match 卻沒有內容
想請教一下 我是否哪邊有寫錯
作者: MOONRAKER (㊣牛鶴鰻毛人)   2018-04-24 10:36:00
用 / 開頭 最後沒有 / 中間卻有好幾個沒escape這樣沒有錯誤訊息 不可思議https://www.regextester.com/ 這個站不錯要用regex先自己在上面玩一玩還有抓HTML內容 simplehtmldom卡實在
作者: liisi (小心一點)   2018-04-24 11:22:00
我剛用這網站 先用 <div class=\"a1_class\"> 有match到但是如果之後繼續加上 .*?<h3 就沒有任何match了是換行問題嗎 囧rz
作者: MOONRAKER (㊣牛鶴鰻毛人)   2018-04-24 12:09:00
換行很煩 就這個而言改用 \s* 就可以繼續match不過通常看到多行就會想別的方法了

Links booklink

Contact Us: admin [ a t ] ucptt.com