【已解决】请教一个ie提取网页内容的正则
本帖最后由 sdu123 于 2013-6-26 10:24 编辑小弟新学autoit对正则不太懂请教一个用提取网页内容的正则
我写的代码是:#include <IE.au3>
#include <Array.au3>
$oIE = _IECreate ("http://news.sciencenet.cn/htmlnews/2013/6/279092.shtm")
_IELoadWait ($oIE,0,10000)
$sText0 = _IEDocReadHTML($oIE)
MsgBox(0, 0, $sText0)
$array = StringRegExp($sText0, '<div style="TEXT-INDENT: 2em">(.*?)</div>', 3)
For $i = 0 To UBound($array) - 1
MsgBox(0, 0, $array[$i])
Next测试通不过 没提取到任何内容
网页源代码是:
<div> </div>
<div style="TEXT-INDENT: 2em">受教育部及日本学术振兴会的委托,国家留学基金管理委员会(以下简称留学基金委)负责日本学术振兴会论文博士奖学金执行工作。录取人员无需在日本高校履修博士课程,可在国内导师和日本导师的联合指导下完成博士论文,经答辩合格后可获得日本大学的论文博士学位。现将有关选拔事宜通知如下:</div>
<div> </div>
<div style="TEXT-INDENT: 2em"><strong>一、选派计划</strong></div>
<div> </div>
<div style="TEXT-INDENT: 2em">(一)选派专业:不限。</div>
我想提取<div style="TEXT-INDENT: 2em">和</div>之间的汉字 请教一下我的代码错在哪里啊? 回复 1# sdu123
你正则没问题, 问题在于你弄错了源数据!
2em;"> 注意"2em"后面有个分号" :"
而你把它弄丢了! 实在想不到更好的,还是请A版出手吧~#include <Array.au3>
#include <Inet.au3>
$sText0 = BinaryToString(_INetGetSource('http://news.sciencenet.cn/htmlnews/2013/6/279092.shtm', 0), 4)
$array = StringRegExp($sText0, '(?m)m\"\>.*?([^\x00-\xff]+.*?)\<', 3)
_ArrayDisplay($array) 回复 1# sdu123
不是正则的:
#include <IE.au3>
$oIE = _IECreate("http://news.sciencenet.cn/htmlnews/2013/6/279092.shtm",1,0)
$Ele = _IEGetObjById($oIE,"content1")
MsgBox(0,"是你要的吗??",$Ele.outertext) 回复 3# annybaby
不错,学习了。有没有不需要开网页的办法。 回复 2# haijie1223
多谢haijie1223的热情帮助!学习了你的正则感觉我的正则可能是特殊符号没有加转义。 回复 3# annybaby
多谢annybaby的热情帮助!原来ie还可以直接提取文本内容,学习了! 回复 4# user3000
非常感谢user3000的帮助啊!我的正则其实加了:号的,刚学习了haijie1223的正则,觉得我的可能是特殊符号没加转义。 问题解决了非常感谢各位大牛的帮助! 回复 8# sdu123
是分号 ;
不是冒号 :
这不是元字符,不用转义 回复 10# user3000
可是源代码里面没有分号啊。 回复 11# sdu123
看网页源码的确是没有!!!
但这个分号确实存在, 你试试#include <IE.au3>
#include <Array.au3>
$oIE = _IECreate ("http://news.sciencenet.cn/htmlnews/2013/6/279092.shtm")
_IELoadWait ($oIE,0,10000)
$sText0 = _IEDocReadHTML($oIE)
;MsgBox(0, 0, $sText0)
$array = StringRegExp($sText0, '(?i)<div style="TEXT-INDENT: 2em;?">(.*?)</div>', 3)
_ArrayDisplay($array)
FileWrite('r.txt', $sText0)
ShellExecute('r.txt')我昨天是放到剪贴板后贴出来看到的. 回复 12# user3000
神人啊这都能发现!多谢大牛的指点! 学习了
巅峰时代 {:face (356):}学习了。。
页:
[1]
2