如何获取utf8编码的html内容

2024-10-03 02:42:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下一个密码

# __author__ = 'Vahagn'
 # -*- coding: utf-8 -*-
import BeautifulSoup
import requests
     req = requests.get(u"http://knowledge.allbest.ru/chemistry/3c0a65635a3ad68b5c53b88421306c27.html")
     s2 = BeautifulSoup.BeautifulSoup(req.content).find('p',{'class':'text'}).text
     print(s2+'\n')

在那里我弹s2,控制台或文件写

Õèìè÷åñêèå ñâîéñòâà. Ìèíåðàëû. Ìåäíûå ñïëàâû. Ìàðêè ìåäíûõ ñïëàâîâ. Ìåäíî-öèíêîâûå ñïëàâû. Ëàòóíè. Îëîâÿííûå áðîíçû. Àëþìèíèåâûå áðîíçû. Êðåìíèñòûå áðîíçû. Áåðèëëèåâûå áðîíçû. Ìåäü â ïðîìûøëåííîñòè. Ìåäü â æèçíè ðàñòåíèé è æèâîòíûõ.

但是需要

Химические свойства. Минералы. Медные сплавы. Марки медных сплавов. Медно-цинковые сплавы. Латуни. Оловянные бронзы. Алюминиевые бронзы. Кремнистые бронзы. Бериллиевые бронзы. Медь в промышленности. Медь в жизни растений и животных.

请帮忙,我怎么能修好它,为以后这段文字(s2)写给mysql。非常感谢。你知道吗


Tags: textimporthttp密码getrequestsrequtf
3条回答

查看HTML和响应头,web服务器不会向您发送数据的编码。这意味着Python必须做出猜测。我认为它将使用您的默认编码(无论您的操作系统使用什么)。你知道吗

尝试用不同的编码将req.content转换成unicode,直到找到一种产生正确输出的编码:

content = unicode(req.content, encoding)

尝试utf-8iso-latin-1作为编码或俄罗斯常用的一些编码。你知道吗

您可能需要解码:

s2 = BeautifulSoup(req.content.decode("windows-1251")).find('p',{'class':'text'}).tex‌​t 


In [72]: s2 = BeautifulSoup(req.content).find('p',{'class':'text'}).text
In [73]: s2
Out[73]: 'Õèìè÷åñêèå ñâîéñòâà. Ìèíåðàëû. Ìåäíûå ñïëàâû. Ìàðêè ìåäíûõ ñïëàâîâ. Ìåäíî-öèíêîâûå ñïëàâû. Ëàòóíè. Îëîâÿííûå áðîíçû. Àëþìèíèåâûå áðîíçû. Êðåìíèñòûå áðîíçû. Áåðèëëèåâûå áðîíçû. Ìåäü â ïðîìûøëåííîñòè. Ìåäü â æèçíè ðàñòåíèé è æèâîòíûõ.'

In [74]: s2 = BeautifulSoup(req.content.decode("windows-1251")).find('p',{'class':'text'}).text    
In [75]: s2
Out[75]: 'Химические свойства. Минералы. Медные сплавы. Марки медных сплавов. Медно-цинковые сплавы. Латуни. Оловянные бронзы. Алюминиевые бронзы. Кремнистые бронзы. Бериллиевые бронзы. Медь в промышленности. Медь в жизни растений и животных.'

试着在打印之前对它进行编码。像这样:

import BeautifulSoup
import requests
     req = requests.get(u"http://knowledge.allbest.ru/chemistry/3c0a65635a3ad68b5c53b88421306c27.html")
     s2 = BeautifulSoup.BeautifulSoup(req.content).find('p',{'class':'text'}).text
     s2 = s2.encode('utf-8')
     print(s2+'\n')

相关问题 更多 >