Фактический источник этой страницы действительно говорит:
<a href="http://www.generation276.org/film/?m=200812&paged=2" >Pagina successiva »</a>
и это прекрасно. &
является допустимой ссылкой для символа символа амперсанда в HTML, хотя ссылка на объект &
обычно более распространена.
<a href="http://www.generation276.org/film/?m=200812&paged=2" >Pagina successiva »</a>
Неверный формат HTML.
Когда вы сохраняете только «HTML», Chrome сохраняет исходный источник HTML без изменений. Когда вы сохраняете «Завершить», он должен переписать страницу для изменения ссылок на другие ресурсы.
К сожалению, процесс сериализации, связанный с этим, по-видимому, имеет ошибку при отсутствии &
-выбрасывает амперсанды в URL-адресе. В то время как браузеры, как правило, позволяют вам избежать этого, он сломается (искажает ваш URL), если слово справа от амперсанда произойдет, чтобы создать допустимое имя или ссылку на объект HTML.
Другие места, где значения атрибутов сериализаций Chrome, такие как innerHTML
, не страдают от этой довольно бедной ошибки.
ETA:
Я должен "экранирования в" & ... как я могу сделать?
Если вы попытаетесь очистить информацию из источника, используя регулярное выражение, вам придется декодировать вручную с помощью HTML-декодера. Не существует встроенного Java-устройства, поэтому вам понадобится сторонний инструмент, например, от Apache Commons, связанный с seanizer.
Однако скребок с регулярным выражением является грубым и ненадежным. Я бы настоятельно предложил использовать an HTML parser, чтобы загрузить файл и выбрать нужные данные. Он будет обрабатывать значения атрибутов декодирования и текстовое содержимое.
Итак, вы говорите, что работает Java-код. Хорошо, как я могу «отменить» URL? Я имею в виду в общем. Спасибо –
см. Мой обновленный ответ –