php项目----抓取网页视频地址问题(请教正则表达式)

雨落清晨 2012-08-07 11:31:30
现在在做抓取视频项目,主要抓取优酷,搜狐视频,56,激动,土豆,奇艺等等视频网站的视频地址和标题。一般情况下

<a href ="http://youku/v_show/1.html" title="奥运会">奥运会</a> 这种a标签比较好抓,但是有的网站a标签比较复杂,所

以请教高手帮忙 正则表达式的写法, 例如这样的嵌套的a标签

<a href="http://www.tudou.com/albumplay/t1tzlUNNYo4/-iH73Qo6xTc.html" target="new" class="inner"><img width="132" height="99" alt="http://i3.tdimg.com/b/20120806/c224.jpg" class="pack_clipImg lazyImg" src="http://css.tudouui.com/skin/__g/img/sprite.gif" ><span class="vpbg"></span><a class="vinf" target="new" href="http://www.tudou.com/albumplay/t1tzlUNNYo4/-iH73Qo6xTc.html">2012-08-05</a></a>


还有这样的 <A href="http://sports.joy.cn/video/4015552.htm" target="_blank"><img src="http://file1.megajoy.com/2012/07/04/20/47sxy7bf_0076_010.jpg" alt="博阿斯重返英超 下赛季执教热刺" border=0 width=100 height=75></A>

请教大家正则表达式怎么写比较完善啊 ,要不区分大小写,还要抓到完整的a标签。至于a标签里的内容我在自己会过滤。



谢谢大家~~~~~~~~~~~~~~~~~~~~~~好答案直接给全分哦
...全文
442 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨落清晨 2012-10-09
  • 打赏
  • 举报
回复
解决了,虽然有的地方解决的不是很完美,但还算完成了[Quote=引用 8 楼 的回复:]

楼主东西你解决了?
[/Quote]
搞得定 2012-10-02
  • 打赏
  • 举报
回复
楼主东西你解决了?
雨落清晨 2012-08-07
  • 打赏
  • 举报
回复
我现在用的是这个:/<a\s+[^>]*\s*>.+<\/a>/i
可还是土豆的抓不下来,不知道怎么回事?

你写的这个没有结束 </a> 啊,我试了一下 因为标题是提取的 <a>标题</a> 中间的,所以提取不到。 现在主要是a标签嵌套的问题

我正则也不太好,谢谢你~

[Quote=引用 1 楼 的回复:]

/<a[^>]*>/is 这样将所有a匹配了。你再自己处理地址和标题。
[/Quote]
一起混吧 2012-08-07
  • 打赏
  • 举报
回复
/<a[^>]*>/is 这样将所有a匹配了。你再自己处理地址和标题。
雨落清晨 2012-08-07
  • 打赏
  • 举报
回复

大概用不到这么复杂的正则式。很简单就能解决的。谢谢~~
[Quote=引用 5 楼 的回复:]

(?i)<a\b(?:(?!\bhref\b).)*+href\s*=\s*(["']?)([^"'\s><]++)\1[^><]*+>(?:(?!</?a\b).)*+(?:<a\b[^><]*>[^><]*</a>\s*)?(?:(?!</?a\b).)*+</a>

不懂,请加QQ群:248760715
[/Quote]
雨落清晨 2012-08-07
  • 打赏
  • 举报
回复
我找到原因了,是因为网页编码问题,百度腾讯优酷都是utf-8,土豆,激动网,新浪视频都是gb2312,抓不到,我们是utf-8。还是非常谢谢你~~~
[Quote=引用 3 楼 的回复:]

/<a[^>]*>.+?<\/a>/is
嵌套的要什么结果。最里层的?
[/Quote]
幽狼 2012-08-07
  • 打赏
  • 举报
回复
(?i)<a\b(?:(?!\bhref\b).)*+href\s*=\s*(["']?)([^"'\s><]++)\1[^><]*+>(?:(?!</?a\b).)*+(?:<a\b[^><]*>[^><]*</a>\s*)?(?:(?!</?a\b).)*+</a>

不懂,请加QQ群:248760715
雨落清晨 2012-08-07
  • 打赏
  • 举报
回复
<a href="http://www.tudou.com/albumplay/t1tzlUNNYo4/-iH73Qo6xTc.html" target="new" class="inner"><img width="132" height="99" alt="http://i3.tdimg.com/b/20120806/c224.jpg" class="pack_clipImg lazyImg" src="http://css.tudouui.com/skin/__g/img/sprite.gif" ><span class="vpbg"></span><a class="vinf" target="new" href="http://www.tudou.com/albumplay/t1tzlUNNYo4/-iH73Qo6xTc.html">2012-08-05</a></a>

像上面这样的a标签应该怎么匹配呢?我用/<a\s+[^>]*\s*>.+<\/a>/i 匹配不到视频地址

[Quote=引用 3 楼 的回复:]

/<a[^>]*>.+?<\/a>/is
嵌套的要什么结果。最里层的?
[/Quote]
一起混吧 2012-08-07
  • 打赏
  • 举报
回复
/<a[^>]*>.+?<\/a>/is
嵌套的要什么结果。最里层的?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧