我正在解析网页的 html 代码,并使用正则表达式抓取作为 href 提到的所有链接,但某些网站(例如维基百科)在 html 代码中提及某些 href 作为释义 例如:
代码说:
href="#cite_note-Types_of_Test_Item_Formats-
但链接实际上是: http://en.wikipedia.org/wiki/Test_(assessment)#cite_note-Types_of_Test_Item_Formats-15
如何仅使用网页源来访问这些链接?
编辑:用java编码
感谢任何帮助
最佳答案
它们不是释义,而是片段标识符。 #
引入页面片段的标识符。因此,您引用的是当前页面的相对 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
(注意缺少协议(protocol))
=>http://stackoverflow.com/questions/8110960/8110987#8110987
(是的,really)
...等等,等等
关于java - 如何获取由 href 定向的实际链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8110960/