我正在使用BeautifulSoup从一个中文在线出版网站上获取数据,这是其中一本小说的网址http://www.jjwxc.net/onebook.php?novelid=1485737。在
我尝试过不同的编解码方案(如gb2312,utf-8)及其组合来阅读网站。例如
import requests
from bs4 import BeautifulSoup
url = "http://www.jjwxc.net/onebook.php?novelid=1485737"
response = requests.get(url)
text = response.text
print text.encode('gb2312')
>> UnicodeEncodeError: 'gb2312' codec can't encode character u'\xa1' in position 340: illegal multibyte sequence
print text.encode('utf-8')
>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<title>¡¶£¨Õý°æ£©±¼Ô¡·Êñ¿Í_¡¾Ô´´Ð¡Ëµ|ÑÔÇéС˵¡¿_½ú½ÎÄѧ³Ç</title>
<meta name="Keywords" content="Êñ¿Í,£¨Õý°æ£©±¼ÔÂ,Êñ¿Í¡¶£¨Õý°æ£©±¼Ô¡·,Ö÷½Ç£ºÁøÉÒ ©§ Åä½Ç£ºÔ£¬Â½À룬ËÕÐÅ£¬°×ÒÂÚÄÇ£¬Âå¸è£¬×¿ÇïÏÒ£¬ÉÌÓñÈÝ£¬Ð»ÁîÆëµÈµÈ£¨³ö³¡ÅÅÃû£© ©§ ÆäËü£ºÏÉÏÀ£¬ÁøÉÒ£¬ÔÂÉñ£¬Éñ»°,ÇéÓжÀÖÓ Å°ÁµÇéÉî ÁéÒìÉñ¹Ö âêÈ»Èôʧ ×îиüÐÂ:2015-07-15 23:57:04 ×÷Æ·»ý·Ö£º193191456" />
注意,文档本身声称是使用gb2312编码的。在
我在论坛里参观了一下,发现编码定义可能有一些问题。如果我试试下面的方法
^{pr2}$但是
import chardet
chardet.detect(html)
给予
>> {'confidence': 0.0, 'encoding': None}
有人能解释一下这个问题吗?谢谢您!在
我使用了how to decode and encode web page with python?中提到的方法,发现它适用于大多数中国网站,但我感兴趣的网站除外。在
试试这个,它应该能起作用。在
相关问题 更多 >
编程相关推荐