Как я могу скачать и прочитать URL с универсальными символами новой строки?

Я использовал urllib.urlopen с Python 2.7, но мне нужно обработать загруженный документ HTML и содержащиеся в нем новые строки (в пределах <pre> элемент).

Документы urllib указывают, что urlopen не будет использовать универсальные переводы строк. Как я могу это сделать?

2 ответа

Решение

Если файл HTML уже не находится на вашем диске, urlopen() будет корректно обрабатывать все форматы новых строк (\n, \r\n а также \r) в файле HTML, который вы хотите проанализировать (то есть он преобразует их в \n), в соответствии с документами urllib:

"Если URL-адрес не имеет идентификатора схемы или если у него есть файл: в качестве идентификатора схемы открывается локальный файл (без универсальных символов новой строки)"

Например

>>> from urllib import urlopen
>>> urlopen("http://****.com/win_new_lines.htm").read()
'line 1\nline 2\n\n\nline 3'
>>> urlopen("http://****.com/unix_new_lines.htm").read()   
'line 1\nline 2\n\n\nline 3'

Когда вы обрабатываете содержимое pre теги, используйте разделительные линии, чтобы нормализовать окончания строк:

'\n'.join(contents.splitlines())
Другие вопросы по тегам