最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python抓取并保存html頁面時亂碼問題的解決方法

 更新時間:2016年07月01日 11:23:47   作者:holybin  
這篇文章主要介紹了python抓取并保存html頁面時亂碼問題的解決方法,結合實例形式分析了Python頁面抓取過程中亂碼出現的原因與相應的解決方法,需要的朋友可以參考下

本文實例講述了python抓取并保存html頁面時亂碼問題的解決方法。分享給大家供大家參考,具體如下:

在用Python抓取html頁面并保存的時候,經常出現抓取下來的網頁內容是亂碼的問題。出現該問題的原因一方面是自己的代碼中編碼設置有問題,另一方面是在編碼設置正確的情況下,網頁的實際編碼和標示的編碼不符合造成的。html頁面標示的編碼在這里:

復制代碼 代碼如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

這里提供一種簡單的辦法解決:使用chardet判斷網頁的真實編碼,同時從url請求返回的info判斷標示編碼。如果兩種編碼不同,則使用bs模塊擴展為GB18030編碼;如果相同則直接寫入文件(這里設置系統(tǒng)默認編碼為utf-8)。

import urllib2
import sys
import bs4
import chardet
reload(sys)
sys.setdefaultencoding('utf-8')
def download(url):
  htmlfile = open('test.html','w')
  try:
    result = urllib2.urlopen(url)
    content = result.read()
    info = result.info()
    result.close()
  except Exception,e:
    print 'download error!!!'
    print e
  else:
    if content != None:
      charset1 = (chardet.detect(content))['encoding'] #real encoding type
      charset2 = info.getparam('charset') #declared encoding type
      print charset1,' ', charset2
      # case1: charset is not None.
      if charset1 != None and charset2 != None and charset1.lower() != charset2.lower():
        newcont = bs4.BeautifulSoup(content, from_encoding='GB18030')  #coding: GB18030
        for cont in newcont:
          htmlfile.write('%s\n'%cont)
      # case2: either charset is None, or charset is the same.
      else:
        #print sys.getdefaultencoding()
        htmlfile.write(content) #default coding: utf-8
  htmlfile.close()
if __name__ == "__main__":
  url = 'http://m.fzitv.net'
  download(url)

得到的test.html文件打開如下,可以看到使用的是UTF-8無BOM編碼格式存儲的,也就是我們設置的默認編碼:

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python編碼操作技巧總結》、《Python圖片操作技巧總結》、《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • python日期與時間戳的各種轉換示例

    python日期與時間戳的各種轉換示例

    這篇文章主要介紹了python日期與時間戳的各種轉換示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Python使用combinations實現排列組合的方法

    Python使用combinations實現排列組合的方法

    今天小編就為大家分享一篇Python使用combinations實現排列組合的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python關于__name__屬性的含義和作用詳解

    Python關于__name__屬性的含義和作用詳解

    在本篇文章里小編給大家分享的是關于Python關于__name__屬性的含義和作用知識點,需要的朋友們可以參考下。
    2020-02-02
  • python 變量初始化空列表的例子

    python 變量初始化空列表的例子

    今天小編就為大家分享一篇python 變量初始化空列表的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python內置HTTP Server如何實現及原理解析

    python內置HTTP Server如何實現及原理解析

    這篇文章主要為大家介紹了python內置HTTP Server如何實現及原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 對Python之gzip文件讀寫的方法詳解

    對Python之gzip文件讀寫的方法詳解

    今天小編就為大家分享一篇對Python之gzip文件讀寫的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python實現計算兩個時間之間相差天數的方法

    Python實現計算兩個時間之間相差天數的方法

    這篇文章主要介紹了Python實現計算兩個時間之間相差天數的方法,涉及Python針對日期時間的相關運算操作技巧,需要的朋友可以參考下
    2017-05-05
  • 使用python將多個excel文件合并到同一個文件的方法

    使用python將多個excel文件合并到同一個文件的方法

    這篇文章主要介紹了使用python將多個excel文件合并到同一個文件的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python3 中把txt數據文件讀入到矩陣中的方法

    Python3 中把txt數據文件讀入到矩陣中的方法

    下面小編就為大家分享一篇Python3 中把txt數據文件讀入到矩陣中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 詳解HttpRunner3的HTTP請是如何發(fā)出

    詳解HttpRunner3的HTTP請是如何發(fā)出

    這篇文章主要為大家介紹了HttpRunner3的HTTP請是如何發(fā)出詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07

最新評論

庆阳市| 赤峰市| 滦南县| 茌平县| 江门市| 邵阳县| 长兴县| 连平县| 包头市| 屏边| 云浮市| 措美县| 诸暨市| 务川| 宕昌县| 茂名市| 邵阳县| 开江县| 炎陵县| 永胜县| 文山县| 积石山| 灵山县| 河北省| 元阳县| 宝山区| 溆浦县| 琼结县| 枣庄市| 南木林县| 荥阳市| 洛隆县| 旅游| 明光市| 无锡市| 鹿邑县| 夹江县| 青川县| 工布江达县| 甘德县| 大化|