Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Python请求/urllib模块读取印地语/Devanagari_Python_Web Scraping_Python Requests_Character Encoding_Hindi - Fatal编程技术网

无法使用Python请求/urllib模块读取印地语/Devanagari

无法使用Python请求/urllib模块读取印地语/Devanagari,python,web-scraping,python-requests,character-encoding,hindi,Python,Web Scraping,Python Requests,Character Encoding,Hindi,我正在尝试刮取这个包含印地语数据的脚本,即Devanagari脚本。这个结构很容易刮。但是,当我使用requests/urllib获取html代码时,印地语文本会被转换成一些胡言乱语。不过,该文本在网站的源代码中显示良好 content = requests.get(URL).text "一,पी एस ' 在中,站点被解析为“1\xe0\xa4\xaa\xe0\xa5\x80\xe0\xa4\x8f\xe0\xa4\xb8”进入内容,并在我尝试导出到csv时显示为乱码。服务器的响应没有在其内

我正在尝试刮取这个包含印地语数据的脚本,即Devanagari脚本。这个结构很容易刮。但是,当我使用requests/urllib获取html代码时,印地语文本会被转换成一些胡言乱语。不过,该文本在网站的源代码中显示良好

content = requests.get(URL).text

"一,पी एस ' 在中,站点被解析为“1\xe0\xa4\xaa\xe0\xa5\x80\xe0\xa4\x8f\xe0\xa4\xb8”进入内容,并在我尝试导出到csv时显示为乱码。

服务器的响应没有在其内容类型标头中指定字符集,因此请求(拉丁语-1)

事实上,页面被编码为UTF-8,我们可以通过检查响应的
表观编码
属性来判断:

>>> r.apparent_encoding
'utf-8'
>>> html = r.content.decode(r.apparent_encoding)
或者通过实验:

>>> s = '1 \xe0\xa4\xaa\xe0\xa5\x80 \xe0\xa4\x8f\xe0\xa4\xb8'
>>> s.encode('latin').decode('utf-8')
'1 पी एस'
通过解码响应的
内容
属性,可以获得正确的输出:

>>> r.apparent_encoding
'utf-8'
>>> html = r.content.decode(r.apparent_encoding)

你可以下载网站上提供的excel文件,基本上你可以自动从包含所有数据的网站下载excel文件,而不是自己抓取和保存数据。@Vin我需要抓取大约20万个这样的查询。是的,这也不是问题。一旦您创建了一个带有动态参数的自动化脚本,您要为其下载数据,它就会为您下载该excel文件。我猜在您的案例中,动态值将是STATE、DISTRICT和BLOCK?您能告诉我您是如何导航到拉贾斯坦邦州页面的吗?@Vin我在父网站上使用selenium提取了我想要的所有URLscrape@RickJames只是为了证明问题中的mojibake是可解码的。