找回密码
 加入
搜索
查看: 5414|回复: 19

用正则表达式提取网页信息

  [复制链接]
发表于 2008-12-25 13:06:17 | 显示全部楼层 |阅读模式
<td class="table001"> &nbsp;<BR>
                        <table width="75%" border="0" align="center" class="table001">
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b>农历:</b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">冬月(小)廿八 星期四 射手座</td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b>干支:</b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">戊子年 生肖属鼠 甲子月 己亥日</td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b><FONT COLOR=red>宜:</FONT></b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">出行 沐浴 理发 补垣 塞穴</td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b><FONT COLOR=green>忌:</FONT></b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">入宅 安葬</td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b>吉神宜趋:</b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">玉堂 </td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b>凶神宜忌:</b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">游祸 血支 重日 朱雀 </td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b>每日胎神占方:</b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">占门床房内南</td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b>五行:</b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">平第木 闭执位</td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b>冲:</b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">冲蛇(癸已)煞西</td>
                          </tr>
                          <tr>
                            <td width="26%" bgcolor="#FFAA00" height="30">
                              <div align="right"><b>彭祖百忌:</b></div>
                            </td>
                            <td width="74%" bgcolor="#FFD680">己不破券二比并亡 亥不嫁娶不利新郎</td>
                          </tr>
                        </table>
                        
                      </td>
                    </tr>

我想把其中的“宜:出行 沐浴 理发 补垣 塞穴”和“忌:入宅 安葬”提取出来,如何做呢?
谢谢各位!

[ 本帖最后由 abcabc8759 于 2008-12-26 13:12 编辑 ]
 楼主| 发表于 2008-12-25 18:31:07 | 显示全部楼层
请各位高手帮帮我吧!我再顶顶!
发表于 2008-12-25 18:35:50 | 显示全部楼层
提供一种思路,_IEBodyReadText($oIE) 分析文本实现更好一些
 楼主| 发表于 2008-12-25 18:51:46 | 显示全部楼层
不好弄的,我用
#include <IE.au3>
$oIE = _IE_Example ("www.nongli.com/item4/index.asp")
$sText = _IEBodyReadText ($oIE)
MsgBox(0, "Body Text", $sText)
返回的结果为0
发表于 2008-12-25 19:11:05 | 显示全部楼层

#Include <Array.au3>
#include <INet.au3>
$oIE=_INetGetSource("www.nongli.com/item4/index.asp")
$sReturn=StringRegExp($oIE,'"#FFD680">(.*)<(?i)/td>',3)
_ArrayDisplay($sReturn)
 楼主| 发表于 2008-12-25 19:45:48 | 显示全部楼层
叁恨居士,太厉害了,一出手就给我整出来了,并且决不拖泥带水,谢谢,我在想着加工吧!估计读懂你的这些代码,我又得好久忙活了,谢谢!

[ 本帖最后由 abcabc8759 于 2008-12-25 19:47 编辑 ]
 楼主| 发表于 2008-12-25 20:57:13 | 显示全部楼层
#Include <Array.au3>
#include <INet.au3>
$oIE=_INetGetSource("www.nongli.com/item4/index.asp")
$sReturn=StringRegExp($oIE,'"#FFD680">(.*)<(?i)/td>',3)
_ArrayDisplay($sReturn)

我这样理解,不知道对不对
"#FFD680">是指信息的前缀
(.*)是指将所有信息,也就是"#FFD680">后面的所有信息
<(?i)/td>是指不区分大小写,直到/td处停止
我只是这样分析认为的,还请理解的朋友说一下我对不对,谢谢!
 楼主| 发表于 2008-12-25 21:29:29 | 显示全部楼层
感觉我说的不对,我改了一下代码,根本不能运行!希望知道的朋友给我说一下啊!
我想把这些文件信息保存在一个文本文件中,可是怎么改都不行!

[ 本帖最后由 abcabc8759 于 2008-12-25 21:34 编辑 ]
发表于 2008-12-26 11:58:45 | 显示全部楼层
你的理解没有错,不过,用右键得到的源码,有时和用函数得到的源码会有点不同

按上面的说法,试试读取显示的文字更加实际
 楼主| 发表于 2008-12-26 13:13:12 | 显示全部楼层
谢谢liongodmien的指点!
发表于 2008-12-26 15:22:09 | 显示全部楼层
或者直接吧换行给替换掉
StringRegExpReplace ($sHTML, "\r\n", "")
发表于 2009-8-10 09:55:43 | 显示全部楼层
正则的功能的确强大
发表于 2009-8-10 20:06:34 | 显示全部楼层
学习
发表于 2009-8-12 22:02:23 | 显示全部楼层
谢谢!学习一下。
发表于 2010-8-29 05:05:02 | 显示全部楼层
学习了谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-18 17:31 , Processed in 0.077876 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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