簡體   English   中英

如何從網頁內容中提取鏈接?

[英]How to extract links from a web content?

我已經下載了一個網頁,並且想要提取該文件中的所有鏈接。 此鏈接包括絕對和親戚。 例如,我們有:

<script type="text/javascript" src="/assets/jquery-1.8.0.min.js"></script>

要么

<a href="http://stackoverflow.com/" />

所以讀完文件后該怎么辦?

如果您要使用Java內置的regex系統,則要做的事情並不復雜。 困難的是找到合適的正則表達式來匹配URL [1] [2] 為了得到答案,我將假設您已經完成了該任務,並將其存儲為Pattern並帶有如下語法:

Pattern url = Pattern.compile("your regex here");

以及在每一行中進行迭代的某種方式。 您要做的是定義一個ArrayList<String>

ArrayList<String> urlsFound = new ArrayList<>();

從那里開始,您將有一些循環來循環訪問文件(假設每行都是<? extends CharSequence> line ),然后在其中放入:

Matcher urlMatch = url.matcher(line);
while (urlMatch.find()) urlsFound.add(urlMatch.match());

這樣做是為您的線路和之前的URL匹配Pattern創建一個Matcher 然后,它循環直到#find()返回false(即沒有更多匹配項)並將匹配項(帶有#group() )添加到列表urlsFound

在循環結束時, urlsFound將包含頁面上所有URL的所有匹配項。 請注意,如果您有很多文本,這可能會占用大量內存,因為urlsFound會變得很大,並且您將創建和放棄很多Matcher

1:我通過Google快速搜索找到了一些不錯的網站; 據我所知,這種作物的奶油似乎在這里這里 您的需求可能會有所不同。

2:您需要確保使用單個組捕獲整個URL,否則將根本無法使用。 但是,如果有多個部分,則可以對其進行調整以使其工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM