作者liisi (小心一点)
看板PHP
标题[请益] 爬虫 preg_match_all 问题
时间Tue Apr 24 00:31:45 2018
各位版友晚安
有问题想请教各位
假设 $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 却没有内容
想请教一下 我是否哪边有写错
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 119.77.199.20
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1524501108.A.43A.html
1F:→ MOONRAKER: 用 / 开头 最後没有 / 中间却有好几个没escape 04/24 10:36
2F:→ MOONRAKER: 这样没有错误讯息 不可思议 04/24 10:38
4F:→ MOONRAKER: 要用regex先自己在上面玩一玩 04/24 10:40
5F:→ MOONRAKER: 还有抓HTML内容 simplehtmldom卡实在 04/24 10:41
6F:→ liisi: 我刚用这网站 先用 <div class=\"a1_class\"> 有match到 04/24 11:22
7F:→ liisi: 但是如果之後继续加上 .*?<h3 就没有任何match了 04/24 11:23
8F:→ liisi: 是换行问题吗 囧rz 04/24 11:24
9F:→ MOONRAKER: 换行很烦 就这个而言改用 \s* 就可以继续match 04/24 12:09
10F:→ MOONRAKER: 不过通常看到多行就会想别的方法了 04/24 12:10