当我尝试下载链接时(ubuntu 16.04,wget 1.17.1):
wget --remote-encoding=UTF-8 http://www.altai_terr.vybory.izbirkom.ru/region/altai_terr?action=ik&vrn=4224065120534我得到一个文件:
>cat altai_terr\?action\=ik
...
<div class="center-colm">
<h2>????????????? ???????? ?????????? ????</h2>
<p>
<strong>????? ????????: </strong><span id="address_ik"><span>656035, ????? ???????, ???????? ?.?.??????, 59</span></span>
</p>
...我检查文件:
>file -bi altai_terr\?action\=ik
text/html; charset=iso-8859-1我检查安装的区域设置:
…
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
…
ru_RU
ru_RU.cp1251
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian
ru_UA
ru_UA.koi8u
ru_UA.utf8
…如何在没有“?”的情况下下载文件?
附注:如果我运行python 2.7和下面的代码:
x = 'http://www.altai_terr.vybory.izbirkom.ru/region/altai_terr?action=ik&vrn=4224065120534'
page_uik = requests.get(url = x)
print page_uik.text我确实得到了:
...
<div class="center-colm">
<h2>Участковая избирательная комиссия №1767</h2>
<p>
<strong>Адрес комиссии: </strong><span id="address_ik"><span>659595, Алтайский край, Усть-Пристанский район, село Коробейниково, улица Комсомольская, дом 33а</span>, дом культуры</span>
</p>
...发布于 2018-03-26 18:53:11
我必须在下载后使用以下命令转换文件:
iconv -f CP1251 -t UTF-8 altai_terr\?action\=ik发布于 2018-03-26 18:42:32
这不是wget的业务。
您可以询问webserver有关特定编码的信息,但webserver可能会忽略您。
Webserver会告诉你他认为是什么编码,但永远不要相信服务器。
HTML还允许作者指定编码(因此无需询问系统管理员/网站管理员)。
因此,在获得文档之后,您的任务是检查它的编码,然后转换它,并处理错误和异常。您可能会看到带有无效代码的UTF-8站点,也可能经常看到具有几种编码的站点(通常是因为动态生成不同的部分,具有错误的编码假设)。
所以得到wget给你的东西,你需要自己解码。
https://stackoverflow.com/questions/49489364
复制相似问题