Как я могу скачать и прочитать URL с универсальными символами новой строки? - PullRequest
1 голос
/ 22 ноября 2011

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

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

Ответы [ 2 ]

3 голосов
/ 22 ноября 2011

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

"Если 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'
2 голосов
/ 22 ноября 2011

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

'\n'.join(contents.splitlines())
...