將&#開頭字符轉(zhuǎn)為中文

將NCR字符轉(zhuǎn)換成真實(shí)字符

以 &# 或 &#x 開頭的字符串叫做 NCR 字符,在瀏覽器中查看會直接轉(zhuǎn)換成中文。

在爬蟲中使用 lxml 解析得到網(wǎng)頁內(nèi)容的html代碼時(shí),網(wǎng)頁中的中文都會顯示成 NCR 字符的形式。

通過 xpath 或 pyquery 獲得的網(wǎng)頁的html字符串中的中文會變成形如“不同的出行方式” 的格式,可通過 py2.x下的HTMLParser 或 py3.x下的html 的 unescape() 方法來轉(zhuǎn)換成能看懂的中文字符。

解決方法:

# Python 2.6-3.3 
# You can use the HTML parser from the standard lib

# Python 2.6-2.7 
import HTMLParserh = HTMLParser.HTMLParser()# Python 3.0-3.5import html.parserh = html.parser.HTMLParser()

# Python 2.6-3.5 (with six)
from six.moves import html_parserh = html_parser.HTMLParser()
print(h.unescape("<p>不同的出行方式,體驗(yàn)是不一樣的。</p>"))
#<p>不同的出行方式,體驗(yàn)是不一樣的。</p>

# Python 3.4+ HTMLParser.unescape is deprecated, and was supposed to be removed in 3.5, although it was left in by mistake. 
It will be removed from the language soon. 
Instead, use html.unescape():
import html
print(html.unescape('£682m'))

2016.11.26
發(fā)現(xiàn)簡書莫名把我用&#舉的例子還原成了中文……只好把例子刪了,至于代碼部分大家意會即可,我就不改了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,265評論 0 4
  • python編碼錯(cuò)誤和中文的亂碼問題,研究了整整兩天,查閱了很多資料,也走了一些彎路,我把經(jīng)驗(yàn)寫下,讓新手少走點(diǎn)彎...
    adminlzzs閱讀 3,467評論 0 4
  • 文/ 陳皓 在邊關(guān),我期待一場初冬的雪 一夜間把群山厚厚的覆蓋 我在哨所用鋼槍書寫你的名字 把和平與你一起儲藏在雪...
    沂蒙文學(xué)閱讀 500評論 11 11
  • 1.我躺在椅子上,享受冬日中無幾的月光。 任憑寒風(fēng)凜冽,也只當(dāng)是激蕩的樂浪。 難怪今日天宮空曠,是激蕩的樂浪,催眠...
    密爾沃基的雪夜閱讀 537評論 0 1
  • 先用維基百科的一張動圖直觀展示一下堆排序過程 bubkoo.qiniudn.com/Sorting_heapsor...
    Energetic俊閱讀 324評論 0 0