sex123 发表于 2014-5-8 10:48:11

网页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
问题是前面的部分在哪里了?

kevinch 发表于 2014-5-8 11:43:27

加上域名就行了

xms77 发表于 2014-5-8 12:14:25

2楼正解!
http://www.jbc.org/content/285/10/7045.full.pdf+html

sex123 发表于 2014-5-8 12:19:51

本帖最后由 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
而不是从域名里找,因为这个域名需要跳转多次才能得到域名的前半部分。

kevinch 发表于 2014-5-8 15:18:46

如果你是从链接集合里找到的,会是完整路径,如果是从源文件里,就可能是半截,可以用htmlfile对象复原再提取链接

sex123 发表于 2014-5-8 16:43:07

如果你是从链接集合里找到的,会是完整路径,如果是从源文件里,就可能是半截,可以用htmlfile对象复原再提 ...
kevinch 发表于 2014-5-8 15:18 http://www.autoitx.com/images/common/back.gif


    能就这个网页给写一个列子吗,我对这个htmlfile一无所知。

kevinch 发表于 2014-5-8 20:57:13

#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]
查看完整版本: 网页url地址不是完整的地址,另外一半在哪里?