bihex 发表于 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,"+://[^\s]*(?=\S)|[^\x00-\xff]+.\S+(?=\<\/\w+)",3)
If Not @error Then _arraydisplay($res,'test')
FileClose($file)

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

bihex 发表于 2015-1-16 14:16:48

我这半瓶水都都还不到,出来让大神们见笑了。看一下是不是你想要的效果?
半芯竹 发表于 2015-1-16 10:01 http://www.autoitx.com/images/common/back.gif


    请问可以做出数组的形式吗 col0 col1 这种的,非常感谢,从你那里学到很多

半芯竹 发表于 2015-1-16 15:00:51

回复 3# bihex


    正则返回的原来就是一个数组。你自己弄个FOR循环来获取到你的变量里面就可以了。。

bihex 发表于 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# 半芯竹

bihex 发表于 2015-2-9 21:57:47

继续求解决方法

bihex 发表于 2015-2-10 09:13:54

主要是有的信息不全,如果差一个就全部都乱了
回复bihex


    正则返回的原来就是一个数组。你自己弄个FOR循环来获取到你的变量里面就可以了。。
半芯竹 发表于 2015-1-16 15:00 http://www.autoitx.com/images/common/back.gif

afan 发表于 2015-2-10 10:15:26

本帖最后由 afan 于 2015-2-10 11:49 编辑

主要是有的信息不全,如果差一个就全部都乱了
bihex 发表于 2015-2-10 09:13 http://www.autoitx.com/images/common/back.gif


    提问的学问,举例时就应该考虑到这种情况,而提供相关的前提条件。信息不全是什么样的都应该举例。
暂时可以试试(?si)href="(.*?)".+?src="(.*?)".+?span>(.*?)<

bihex 发表于 2015-2-13 05:07:48

回复 8# afan
感谢,有时候数据显示有问题
页: [1]
查看完整版本: [已解决]请教提取网易新闻排行榜的问题