2014-01-07 2 views
4

Я пытаюсь сканировать веб-сайт «http://www.daxontech.com» Если мы вводим вышеупомянутую адрес в веб-браузере, адрес автоматически изменяется на http://www.benqmaterials.com/index.aspxсайт перенаправляет на новый адрес, но не посылает 3XX код

Я попытался с помощью код ответа для перенаправления моей программы на указанный выше сайт, но код ответа - 200. Есть ли способ получить вышеуказанный адрес. Я использую Jsoup для ползания. Спасибо заранее.

ответ

3

На указанном вами сайте используется мета-перенаправление, которое выполняется после отправки заголовков клиенту.

<meta http-equiv="refresh" content="0; url=http://www.BenQMaterials.com/index.aspx">  

Это ошибка с веб-сайтом вы ползать и есть, вероятно, мало вы можете делать это без разбора HTML на странице для мета-тегов Refresh (или других подобных методов перенаправлением)

+1

Спасибо, ребята. Мне удалось найти атрибут refresh, а затем перейти к атрибуту content, чтобы быть точным. –

1
$ curl "http://www.daxontech.com" -i 
HTTP/1.1 200 OK 
Content-Type: text/html 
Last-Modified: Tue, 04 Jan 2011 08:47:58 GMT 
Accept-Ranges: bytes 
ETag: "61cc416ecabcb1:0" 
Server: Microsoft-IIS/7.5 
X-Powered-By: ASP.NET 
Date: Tue, 07 Jan 2014 10:11:11 GMT 
Content-Length: 304 

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=big5"> 
<meta http-equiv="refresh" content="0; url=http://www.BenQMaterials.com/index.aspx">  
<title>BenQ Materials, the top four manufacturers of polarizer in the world.</title> 
</head> 
<body> 
</body> 
</html> 

Это не перенаправлять но

<meta http-equiv="refresh" content="0; url=http://www.BenQMaterials.com/index.aspx"> 

атрибут HTTP-эквив обеспечивает заголовок HTTP для информации/значение ввода f атрибут контента.

Атрибут http-equiv может использоваться для имитации заголовка ответа HTTP.

refresh: Определяет временной интервал для обновления документа. Пример:

<meta http-equiv="refresh" content="300">

Примечание: Значение «Обновить» следует использовать с осторожностью, так как она принимает контроль страницы от пользователя. Использование «refresh» приведет к сбою в рекомендациях W3C по доступности веб-контента.

Таким образом, вы можете использовать такие как XPath ("//meta[@http-equiv='refresh']"); или использовать регулярное выражение найти строку <meta http-equiv="refresh" проверить окончательное местоположение.

reference

Смежные вопросы