精品久久久久久久久久久院品网_男女男精品视频_日韩**一区毛片_在线免费不卡电影_亚洲少妇屁股交4_久久国内精品视频_日韩一区二区三免费高清_亚洲成人手机在线_91看片淫黄大片一级在线观看_中文字幕亚洲在_日本一区二区在线不卡_欧美酷刑日本凌虐凌虐_理论电影国产精品_国产精品视频yy9299一区_99久久精品免费观看_国产精品久久三

您現在所在的位置:首頁 >關于奇酷 > 媒體報道 > 年關到了,欠下的Python爬蟲“亂碼”改完了嗎?!

年關到了,欠下的Python爬蟲“亂碼”改完了嗎?!

來源:奇酷教育 發表于:

現指的是指快過年了,Python爬取網站時,欠下的亂碼還沒有改完!

  所謂年關,指農歷年底。舊時欠租、負債的人在這時需要清償債務,過年像過關一樣,所以稱為年關。
 
  現指的是指快過年了,Python爬取網站時,欠下的亂碼還沒有改完!
 
  一、亂碼問題的出現
 
  以爬取51job網站舉例,講講為何會出現“亂碼”問題,如何解決它以及其背后的機制。
 
  代碼示例:
  顯示結果:
 
  打印res.text時,發現了什么?中文亂碼!!!不過發現,網頁的字符集類型采用的gbk編碼格式。
 
  我們知道Requests 會基于 HTTP 頭部對響應的編碼作出有根據的推測。當你訪問 r.text 之時,Requests 會使用其推測的文本編碼。你可以找出 Requests 使用了什么編碼,并且能夠使用r.encoding 屬性來改變它。
 
  接下來,我們一起通過resquests的一些用法,來看看Requests 會基于 HTTP 頭部對響應的編碼方式。
 
  輸出結果為:
 
  可以發現Requests 推測的文本編碼(也就是網頁返回即爬取下來后的編碼轉換)與源網頁編碼不一致,由此可知其正是導致亂碼原因。
 
  二、亂碼背后的奧秘
 
  當源網頁編碼和爬取下來后的編碼轉換不一致時,如源網頁為gbk編碼的字節流,而我們抓取下后程序直接使用utf-8進行編碼并輸出到存儲文件中,這必然會引起亂碼,即當源網頁編碼和抓取下來后程序直接使用處理編碼一致時,則不會出現亂碼,此時再進行統一的字符編碼也就不會出現亂碼了。最終爬取的所有網頁無論何種編碼格式,都轉化為utf-8格式進行存儲。
 
  注意:區分源網編碼A-gbk、程序直接使用的編碼B-ISO-8859-1、統一轉換字符的編碼C-utf-8。
 
  在此,我們拓展講講unicode、ISO-8859-1、gbk2312、gbk、utf-8等之間的區別聯系,大概如下:
 
  最早的編碼是iso8859-1,和ascii編碼相似。但為了方便表示各種各樣的語言,逐漸出現了很多標準編碼。iso8859-1屬于單字節編碼,最多能表示的字符范圍是0-255,應用于英文系列。很明顯,iso8859-1編碼表示的字符范圍很窄,無法表示中文字符。
 
  年中國人民通過對 ASCII 編碼的中文擴充改造,產生了 GB2312 編碼,可以表示6000多個常用漢字。但漢字實在是太多了,包括繁體和各種字符,于是產生了 GBK 編碼,它包括了 GB2312 中的編碼,同時擴充了很多。中國又是個多民族國家,各個民族幾乎都有自己獨立的語言系統,為了表示那些字符,繼續把 GBK 編碼擴充為 GB18030 編碼。每個國家都像中國一樣,把自己的語言編碼,于是出現了各種各樣的編碼,如果你不安裝相應的編碼,就無法解釋相應編碼想表達的內容。終于,有個叫 ISO 的組織看不下去了。他們一起創造了一種編碼 UNICODE ,這種編碼非常大,大到可以容納世界上任何一個文字和標志。所以只要電腦上有 UNICODE 這種編碼系統,無論是全球哪種文字,只需要保存文件的時候,保存成 UNICODE 編碼就可以被其他電腦正常解釋。UNICODE 在網絡傳輸中,出現了兩個標準 UTF-8 和 UTF-16,分別每次傳輸 8個位和 16個位。于是就會有人產生疑問,UTF-8 既然能保存那么多文字、符號,為什么國內還有這么多使用 GBK 等編碼的人?因為 UTF-8 等編碼體積比較大,占電腦空間比較多,如果面向的使用人群絕大部分都是中國人,用 GBK 等編碼也可以。
 
  也可以這樣來理解:字符串是由字符構成,字符在計算機硬件中通過二進制形式存儲,這種二進制形式就是編碼。如果直接使用 “字符串??字符??二進制表示(編碼)” ,會增加不同類型編碼之間轉換的復雜性。所以引入了一個抽象層,“字符串??字符??與存儲無關的表示??二進制表示(編碼)” ,這樣,可以用一種與存儲無關的形式表示字符,不同的編碼之間轉換時可以先轉換到這個抽象層,然后再轉換為其他編碼形式。在這里,unicode 就是 “與存儲無關的表示”,utf—8 就是 “二進制表示”。
 
  三、亂碼的解決方法
 
  根據原因來找解決方法,就非常簡單了。
 
  方法一:直接指定res.encoding
 
  方法二:
 
  通過res.apparent_encoding屬性指定
 
  方法三:通過編碼、解碼的方式
 
  輸出結果:

 
  基本思路三步走:確定源網頁的編碼A---gbk、程序通過編碼B---ISO-8859-1對源網頁數據還原、統一轉換字符的編碼C-utf-8。至于為啥為出現統一轉碼這一步呢? 網絡爬蟲系統數據來源很多,不可能使用數據時,再轉化為其原始的數據,假使這樣做是很廢事的。所以一般的爬蟲系統都要對抓取下來的結果進行統一編碼,從而在使用時做到一致對外,方便使用。
 
  比如如果我們想講網頁數據保存下來,則會將起轉為utf-8,代碼如下:

 
  四、總結
 
  關于網絡爬蟲亂碼問題,本文不僅給出了一個解決方案,還深入到其中的原理,由此問題引申出很多有意思的問題,如,utf-8、gbk、gb2312的編碼方式怎樣的?為什么這樣轉化就可以解決問題?
 
  文章精選
 
  圍觀
 
  爬蟲實戰丨高能預警!抖音小姐姐視頻集來了!
 
  熱文
 
  天Python訓練營;干貨+實戰萬元禮包免費領!
 
  學習像闖關太難,戳原文底部人生三級跳
精品久久久久久久久久久院品网_男女男精品视频_日韩**一区毛片_在线免费不卡电影_亚洲少妇屁股交4_久久国内精品视频_日韩一区二区三免费高清_亚洲成人手机在线_91看片淫黄大片一级在线观看_中文字幕亚洲在_日本一区二区在线不卡_欧美酷刑日本凌虐凌虐_理论电影国产精品_国产精品视频yy9299一区_99久久精品免费观看_国产精品久久三
欧美丝袜丝交足nylons图片| 成人免费毛片嘿嘿连载视频| 国产亚洲综合色| 欧美精品久久99久久在免费线| 色哟哟日韩精品| 欧美亚洲免费在线一区| 欧洲色大大久久| 欧美日韩情趣电影| 777午夜精品视频在线播放| 欧美日韩精品专区| 欧美一级黄色录像| 国产欧美综合在线| 国产欧美一区二区三区在线看蜜臀| 国产色产综合色产在线视频 | 欧洲激情一区二区| 91麻豆精品国产91久久久久| 精品日韩av一区二区| 久久这里都是精品| 亚洲欧美区自拍先锋| 日韩专区一卡二卡| 国产经典欧美精品| 动漫3d精品一区二区三区| 日本在线一区| 欧美精品 国产精品| 久久久影院官网| 悠悠色在线精品| 国产一区二区福利视频| 国产传媒一区二区| 色成人在线视频| 精品嫩草影院久久| 亚洲精品伦理在线| 国产一区二区不卡| 精品一区二区三区日本| 中文字幕一区二区三区乱码| 精品999久久久| 亚洲一区二区三区在线播放| 国产精品亚洲综合一区在线观看| julia一区二区中文久久94| 日韩在线三级| 精品国产一区二区三区四区四| 中文字幕制服丝袜一区二区三区| 日韩电影网1区2区| 9a蜜桃久久久久久免费| 91福利在线导航| 中文天堂在线一区| 狠狠色综合日日| 欧美午夜精品理论片a级大开眼界| 制服丝袜亚洲精品中文字幕| 中文字幕欧美一| 国产成人av电影在线观看| 日本在线视频一区| 久久嫩草精品久久久精品一| 日韩不卡免费视频| 精品无人区一区二区三区竹菊| 91精品国产综合久久精品| 樱花草国产18久久久久| 99久久精品一区二区| 色哟哟一区二区在线观看| 中文字幕不卡一区| 国产福利一区二区| 在线观看福利一区| 一区精品在线播放| www.亚洲精品| 欧美性大战久久久久久久| 一区二区三区四区不卡视频 | 精品久久久久久一区| 日韩一卡二卡三卡国产欧美| 五月婷婷久久综合| 国产精品一区二区免费| 日韩午夜在线播放| 久久精品国产一区二区三| 欧美日韩精品免费观看视一区二区| 欧美成人猛片aaaaaaa| 美女视频网站久久| 亚洲欧美日韩另类精品一区二区三区 | 日韩av成人高清| 久久精品中文字幕一区二区三区 | 国产精品一区二区黑丝| 亚洲欧洲日夜超级视频| 亚洲欧洲精品一区二区精品久久久| 成a人片国产精品| 欧美在线观看18| 天堂影院一区二区| 日韩欧美一区二区在线观看| 综合av第一页| 国产一区二区无遮挡| 国产亚洲女人久久久久毛片| 豆国产96在线|亚洲| 在线精品视频一区二区三四 | 成人免费视频观看视频| 欧美一级高清片在线观看| 麻豆国产精品官网| 91精品91久久久中77777| 亚洲午夜久久久久久久久电影院| 久久精品ww人人做人人爽| 欧美高清在线一区二区| 91在线短视频| 国产三级精品视频| 114国产精品久久免费观看| 日韩欧美亚洲国产另类| 丁香婷婷综合色啪| 26uuu精品一区二区在线观看| 风流少妇一区二区| 精品少妇一区二区| 91丝袜美女网| 欧美韩日一区二区三区| 精品高清视频| 亚洲一区二区三区精品在线| 欧美另类一区| 亚洲成人av免费| 色婷婷国产精品久久包臀 | 久久综合给合久久狠狠色| 亚洲欧美欧美一区二区三区| 日本一区二区三区四区在线观看| 亚洲精品一卡二卡| 亚洲欧洲久久| 久久精品国产一区二区| 日韩亚洲欧美一区二区三区| 91小视频免费观看| 综合久久综合久久| 视频一区二区三区免费观看| 午夜视频一区二区三区| 欧美性受xxxx| 99精品国产一区二区三区不卡| 国产亚洲美州欧州综合国| 久久精品国产第一区二区三区最新章节| 亚洲免费观看在线观看| 色猫猫国产区一区二在线视频| 国内成+人亚洲+欧美+综合在线| 日韩精品影音先锋| 国产亚洲精品久久飘花| 日韩综合小视频| 欧美一级高清片| 久久99久久99精品蜜柚传媒| 亚洲v精品v日韩v欧美v专区| 欧美日韩国产天堂| av在线亚洲男人的天堂| 午夜不卡av免费| 欧美一区二区三区视频在线| 国产一区二区精品免费| 日韩专区中文字幕一区二区| 精品国产乱码久久久久久免费| 狠狠色噜噜狠狠色综合久| 日本不卡123| 国产日韩高清在线| 宅男在线精品国产免费观看| av电影在线不卡| 亚洲成人你懂的| 精品日韩在线观看| 亚洲欧美久久久久一区二区三区| 国产传媒欧美日韩成人| 亚洲欧美一区二区不卡| 69p69国产精品| 欧美一二三区| 国产福利一区二区三区| 亚洲精品久久久蜜桃| 日韩一二三四区| 日韩精品久久一区| 成人av先锋影音| 亚洲aaa精品| 中文av一区特黄| 555夜色666亚洲国产免| 欧洲亚洲一区二区| jlzzjlzz国产精品久久| 天堂成人国产精品一区| 国产免费成人在线视频| 欧美日韩精品电影| 欧美日韩精品久久久免费观看| 国产99久久久国产精品免费看| 亚洲最色的网站| 国产午夜精品福利| 7777精品伊人久久久大香线蕉经典版下载 | 欧美一区二区三区人| 欧美日韩免费高清| 波多野结衣的一区二区三区| 免费xxxx性欧美18vr| 亚洲欧洲精品成人久久奇米网| 欧美一级高清片| 欧美亚洲综合久久| 欧美日韩免费高清| 999精品视频一区二区三区| 国内精品伊人久久久久av影院| 亚洲国产毛片aaaaa无费看| 中文字幕中文乱码欧美一区二区| 欧美成人欧美edvon| 欧美午夜片在线观看| 杨幂一区欧美专区| 欧美精品久久久| 国产一区高清视频| 91女厕偷拍女厕偷拍高清| 国产露脸91国语对白| 日本欧美一区二区三区乱码| 亚洲精品网站在线观看| 国产精品第四页| 国产婷婷色一区二区三区| 精品欧美乱码久久久久久| 欧美高清精品3d| 欧美伦理视频网站| 欧美喷水一区二区| 欧美在线视频全部完|