Как извлечь все URL - адреса из HTML-страницы
I have below response that I got by sending GET request to some server (GET /k/302.html HTTP/1.0) using java socket connection. HTTP/1.1 200 OK Date: Thu, 25 Apr 2019 06:31:21 GMT Server: Apache/2.4.29 (Ubuntu) Last-Modified: Thu, 11 Apr 2019 11:44:58 GMT ETag: "59-5863fb73cdcbb" Accept-Ranges: bytes Content-Length: 89 Vary: Accept-Encoding Connection: close Content-Type: text/html <html> <body> <a href="/"> More pages </a> <img src="redback.jpg"> </body> </html> Connection closed by foreign host. I have to write simple java code where I am suppose to crawl all the urls present on this current webpage (/k/302.html). Currently I am able to extract the first url ("/") using java regular expression as <pre lang="java">"<a\\s+href\\s*=\\s*(\"[^\"]*\"|[^\\s>]*)\\s*>".
Но я не могу получить второй url-адрес, который предназначен для тега.
Ниже приведен расширенный html-контент, который я получил из консоли, где он четко указывает, что "redback.jpg-есть гиперссылка.
<span class="html-tag"><img <span class="html-attribute-name">src</span>="<a class="html-attribute-value html-resource-link" target="_blank" href="redback.jpg" rel="noreferrer noopener">redback.jpg</a>"></span>
Но если мы видим ответ GET, он не ясно говорит о том, что у него есть гиперссылка. Как извлечь такие URL-адреса только из ответа? Я должен сделать это в простой java, используя сокет-соединение со стандартным запросом HTTP без использования каких - либо других внешних библиотек.
Что я уже пробовал:
Для простой URL-адрес, я попытался с помощью регулярных выражений в Java
<pre lang="java">"<a\\s+href\\s*=\\s*(\"[^\"]*\"|[^\\s>]*)\\s*>". но не получается, как получить для встроенных тегов href, потому что я не получаю такую информацию в ответе HTTP GET.