找回密码
 加入
搜索
查看: 5760|回复: 8

[网络通信] [已解决]请教提取网易新闻排行榜的问题

  [复制链接]
发表于 2015-1-15 22:12:07 | 显示全部楼层 |阅读模式
本帖最后由 bihex 于 2015-2-13 05:08 编辑

网页地址: http://news.163.com/photo/#Ranking
我想提取出来数组存储
1 新闻地址1  图片地址1   新闻标题1     浏览数1
2 新闻地址2  图片地址2   新闻标题2     浏览数2
....

这个正则表达式为啥不能识别呢
<li><a href="(http:.*?html)\s*src="(http:.*?jpg)\s*<span>(.*?)</span><b>(\d )</b> </a> </li>

[
网页源码格式化后是下面的样子:
<li> <a href="http://news.163.com/photoview/3R710001/82856.html?from=ph_rank" target="_blank" class="list-0"> <i>1</i> 
    <div class="simg"> 
     <q class="rank-num-1"></q> 
     <img style="width: 100%; height: 100%; margin-left: 0%; margin-top: 0%;" src="http://img3.cache.netease.com/photo/0001/2015-01-15/t_AFVLQM713R710001.jpg" onload="fitImg(this);" /> 
    </div> <span>《看客》第394期:催化感恩</span> <b>4827934</b> </a> </li> 
  <li> <a href="http://news.163.com/photoview/00AP0001/82862.html?from=ph_rank" target="_blank" class="list-1"> <i>2</i> 
    <div class="simg"> 
     <q class="rank-num-2"></q> 
     <img style="width: 100%; height: 100%; margin-left: 0%; margin-top: 0%;" src="http://img3.cache.netease.com/photo/0001/2015-01-15/t_AG02VSTL00AP0001.jpg" onload="fitImg(this);" /> 
    </div> <span>长沙街头现反腐败漫画 城管称过于负能量</span> <b>2000832</b> </a> </li> 
  <li> <a href="http://news.163.com/photoview/00AN0001/82785.html?from=ph_rank" target="_blank" class="list-2"> <i>3</i> 
    <div class="simg"> 
     <q class="rank-num-3"></q> 
     <img style="width: auto; height: 100%; margin-left: -2%; margin-top: 0%;" src="http://img4.cache.netease.com/photo/0001/2015-01-14/t_AFTJF9O700AN0001.jpg" onload="fitImg(this);" /> 
    </div> <span>周永康与薄熙来等“大老虎”的昔日合影</span> <b>1581451</b> </a> </li> 
  <li> <a href="http://news.163.com/photoview/00AP0001/82902.html?from=ph_rank" target="_blank" class="list-3"> <i>4</i> 
    <div class="simg"> 
     <q class="rank-num-4"></q> 
     <img style="width: 100%; height: 100%; margin-left: 0%; margin-top: 0%;" src="http://img4.cache.netease.com/photo/0001/2015-01-15/t_AG0DN04O00AP0001.jpg" onload="fitImg(this);" /> 
    </div> <span>武汉垃圾焚烧厂涉违法运行 周边居民屡患病</span> <b>1376549</b> </a> </li> 
  <li> <a href="http://news.163.com/photoview/00AO0001/82869.html?from=ph_rank" target="_blank" class="list-4"> <i>5</i> 
    <div class="simg"> 
     <q class="rank-num-5"></q> 
     <img style="width: auto; height: 100%; margin-left: -4%; margin-top: 0%;" src="http://img4.cache.netease.com/photo/0001/2015-01-15/t_AG06SI3600AO0001.jpg" onload="fitImg(this);" /> 
    </div> <span>美国3岁小花童20年后成夫妻</span> <b>1266953</b> </a> </li> 
  <li> <a href="http://news.163.com/photoview/00AO0001/82882.html?from=ph_rank" target="_blank" class="list-5"> <i>6</i> 
    <div class="simg"> 
     <q class="rank-num-6"></q> 
     <img style="width: 100%; height: auto; margin-left: 0%; margin-top: -2%;" src="http://img3.cache.netease.com/photo/0001/2015-01-15/t_AG093SV200AO0001.jpg" onload="fitImg(this);" /> 
    </div> <span>印度北方邦恒河现100具尸体</span> <b>864949</b> </a> </li>
发表于 2015-1-16 10:01:59 | 显示全部楼层

#include <Array.au3>
Local $file = FileOpen(@ScriptDir&"\1.txt", 0)
If $file = -1 Then Exit
Local $chars = FileRead($file)
If @error = -1 Then Exit
Local $res = StringRegExp($chars,"[a-zA-z]+://[^\s]*(?=\S)|[^\x00-\xff]+.\S+(?=\<\/\w+)",3)
If Not @error Then _arraydisplay($res,'test')
FileClose($file)

我这半瓶水都都还不到,出来让大神们见笑了。看一下是不是你想要的效果?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2015-1-16 14:16:48 | 显示全部楼层
我这半瓶水都都还不到,出来让大神们见笑了。看一下是不是你想要的效果?
半芯竹 发表于 2015-1-16 10:01



    请问可以做出数组的形式吗 col0 col1 这种的,非常感谢,从你那里学到很多
发表于 2015-1-16 15:00:51 | 显示全部楼层
回复 3# bihex


    正则返回的原来就是一个数组。你自己弄个FOR循环来获取到你的变量里面就可以了。。
 楼主| 发表于 2015-1-27 18:48:11 | 显示全部楼层
怎么才能把实现这样的效果,实在是没有什么思路,主要这样可以保证几个内容保持一致,就是新闻题目 图片地址 标题,万一有对不上的可以直接跳过即可。
Row   Col0                                                Col1                                             Col2
1      http://news.163.com/....                   http://img3.cache.....10001.jpg     《看客》第394期:催化感恩
2      http://news.163.com/....                   http://img3.cache.....10002.jpg     长沙街头现反腐败漫画 城管称过于负能量
3      ...                                                     ....                                                ....
.
.
.


回复 4# 半芯竹
 楼主| 发表于 2015-2-9 21:57:47 | 显示全部楼层
继续求解决方法
 楼主| 发表于 2015-2-10 09:13:54 | 显示全部楼层
主要是有的信息不全,如果差一个就全部都乱了
回复  bihex


    正则返回的原来就是一个数组。你自己弄个FOR循环来获取到你的变量里面就可以了。。
半芯竹 发表于 2015-1-16 15:00
发表于 2015-2-10 10:15:26 | 显示全部楼层
本帖最后由 afan 于 2015-2-10 11:49 编辑
主要是有的信息不全,如果差一个就全部都乱了
bihex 发表于 2015-2-10 09:13



    提问的学问,举例时就应该考虑到这种情况,而提供相关的前提条件。信息不全是什么样的都应该举例。
暂时可以试试
(?si)href="(.*?)".+?src="(.*?)".+?span>(.*?)<
 楼主| 发表于 2015-2-13 05:07:48 | 显示全部楼层
回复 8# afan
感谢,有时候数据显示有问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-13 15:09 , Processed in 0.080143 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表