网页url地址不是完整的地址,另外一半在哪里?
http://www.jbc.org/content/285/10/e99920.full用autoit找到Full Text (PDF)对应的地址,发现是下面的代码
<li><a href="/content/285/10/7045.full.pdf+html" rel="full-text.pdf">Full Text (PDF)</a></li>
就是说提取出来的地址是
/content/285/10/7045.full.pdf+html
问题是前面的部分在哪里了? 加上域名就行了 2楼正解!
http://www.jbc.org/content/285/10/7045.full.pdf+html 本帖最后由 sex123 于 2014-5-8 12:22 编辑
加上域名就行了
kevinch 发表于 2014-5-8 11:43 http://www.autoitx.com/images/common/back.gif
以前也想过这个办法,后来发现网址很多都不一样,而且有的网址跳转多次,取得域名比较费事,设计代码发现很多问题,就在想能不能从返回的网页本身入手。不知道网页内容本身什么地方会不会藏着前半段。
比如下面这个
http://onlinelibrary.wiley.com/doi/10.1111/aen.12065/abstract
Get PDF所代表的是
/doi/10.1111/aen.12065/pdf
想从返回的网页内容里准确找到
http://onlinelibrary.wiley.com
而不是从域名里找,因为这个域名需要跳转多次才能得到域名的前半部分。 如果你是从链接集合里找到的,会是完整路径,如果是从源文件里,就可能是半截,可以用htmlfile对象复原再提取链接 如果你是从链接集合里找到的,会是完整路径,如果是从源文件里,就可能是半截,可以用htmlfile对象复原再提 ...
kevinch 发表于 2014-5-8 15:18 http://www.autoitx.com/images/common/back.gif
能就这个网页给写一个列子吗,我对这个htmlfile一无所知。 #include <ie.au3>
$oie=_IECreate("http://www.jbc.org/content/285/10/e99920.full",1,1,1,0)
For $lnk In $oie.document.links
If $lnk.innertext=="Full Text (PDF)" Then
MsgBox(0,"",$lnk.href)
ExitLoop
EndIf
Next
$oie.document.parentwindow.execscript('javascript:window.opener=null;window.open("","_self");window.close();')这个试一下吧
页:
[1]