afan 发表于 2011-11-25 20:09:19

回复 29# 卫和谐


    怎么不一样?

卫和谐 发表于 2011-11-25 20:12:27

回复 27# afan


能把两部分分开来做?

afan 发表于 2011-11-25 20:13:25

回复 32# 卫和谐


    28#没看见?

afan 发表于 2011-11-25 20:15:48

回复卫和谐

一楼的源码和18楼的完全不一样...

第一个
([^
lixiaolong 发表于 2011-11-25 20:08 http://www.autoitx.com/images/common/back.gif

可能缺少特征,这样获取会多出许多~
他提供的网页右边排名应该只有20组~

卫和谐 发表于 2011-11-25 20:22:26

回复 34# afan


    看到了网速太慢,那如果要获取个人那部分呢?

qqmmcc 发表于 2011-11-25 20:22:27

本帖最后由 qqmmcc 于 2011-11-25 20:24 编辑

用DOM 操作不是更方便吗?以20楼为例,节点是id="tbldwph"
获得该节点的innerText文本即可
正则也要看情况的用的。

卫和谐 发表于 2011-11-25 20:37:35

回复 34# afan


    再帮助看一下个人那部分吧,本人实在太菜了......

afan 发表于 2011-11-25 20:40:13

回复 37# 卫和谐


    看了下,里面的排行类别很多,有单位、个人、单位人气、个人人气…… 不知道你要哪款?

3mile 发表于 2011-11-25 20:45:40

#include <INet.au3>
#include <array.au3>

$str=_INetGetSource ( "http://mms.shm.com.cn/smsRegs/2011jc/ListInfo.aspx",False)
$str=BinaryToString($str,4)

$array=StringRegExp($str,'(?ms)\<\!--个人人气--\>.*?/table\>',3)
$str=_ArrayToString($array,@CRLF)
$array=StringRegExp($str,'>\h*([\x{4e00}-\x{9fa5}\d]+)<',3)
Local $out_array
Local $k=0

For $i=0 to UBound($array)-1 Step 3
        $out_array[$k]=$array[$i+1]
        $out_array[$k]=$array[$i+2]
        $k+=1
Next
_ArrayDisplay($out_array)

卫和谐 发表于 2011-11-25 20:46:51

回复 38# afan

和单位一样,就是右侧那个个人排行列表,个人名字和票数!

afan 发表于 2011-11-25 20:51:25

回复 40# 卫和谐


    右侧只有单位人气,没看到有个人的

卫和谐 发表于 2011-11-25 21:00:51

回复 39# 3mile


    为什么不用单位那种方式分开来写???

卫和谐 发表于 2011-11-25 21:03:47

回复 41# afan


有啊,点击候选民警展示,右侧就可以切换啊

3mile 发表于 2011-11-25 21:05:54

回复 42# 卫和谐
第七行改为:
$array=StringRegExp($str,'(?ms)\<\!--单位人气--\>.*?/table\>',3)

user3000 发表于 2011-11-25 21:08:37

顶一个,顺便说声:正则的魅力不小!
页: 1 2 [3] 4
查看完整版本: [已解决]这个网页中的内容用正则怎么提取