我正在解析网页的html代码,并使用正则表达式抓取所有提到的hrefs链接,但是一些网站例如维基百科,提到html代码中的某些hrefs作为释义 例如:
代码说:
href="#cite_note-Types_of_Test_Item_Formats-
但链接实际上是: http://en.wikipedia.org/wiki/Test_(assessment)#cite_note-Types_of_Test_Item_Formats-15
如何仅使用网页来源访问这些链接?
编辑:用java编码
感谢任何帮助
答案 0 :(得分:2)
它们不是释义,它们是片段标识符。 #
引入了页面片段的标识符。所以你引用的是当前页面的相对URL,具有不同的片段标识符。 Wikipedia page about URLs中有更多内容以及它链接到的RFC。
请注意,片段不一定只出现在自己身上。它们可以是任何URL,相对或绝对。如果您要处理URL,则必须解决如何解析相对URL的问题。例如,如果我们假设我们在页面http://example.com/foo/bar.html
上,那么:
#frag
已解决为http://example.com/foo/bar.html#frag
../alt.html
http://example.com/foo/alt.html
/bonzo/nifty#stuff
http://example.com/bonzo/nifty#stuff
//stackoverflow.com/questions/8110960/8110987#8110987
(请注意缺少协议)http://stackoverflow.com/questions/8110960/8110987#8110987
......等等。
答案 1 :(得分:0)
在维基百科上,它只是引用页面上的一个部分(您当前正在使用),浏览器将向您滚动到锚点。 但是在某些网站上,比如推特。以我的帐户为例 http://twitter.com/#!/msundb(以及转发给它的http://twitter.com/msundb) 实际上只是twitter.com的根源。 #之后的一切!是在那里告诉页面上的javascript它应该加载什么内容。它甚至将链接rel规范设置为" /"告诉谷歌它是起始页(虽然它不是)。
所以你应该如何解释链接取决于你在做什么。