コーディングの問題は爬虫類に遭遇しました


リクエストのインポート
インポートSYS
インポートchardetの#文字エンコーディング検出、時にはエラーが発生します

。#は、2つのURLの場合ビューの符号化
response1 = requests.get(「https://github.com/favicon.ico」)
印刷(chardet.detect (response1.content))#パラメータバイト
RESPONSE2 = requests.get( "http://www.baidu.com/")
を印刷(chardet.detect(response2.content))

-------- ------ ----------------結果

 { 'コード':なし、 '信頼'を:0.0、 '言語':なし}
 { 'コード': 'UTF-8'、 '信頼' 150、 '言語' ''}

#このような状況は、ページ圧縮が原因である可能性があり、その符号化、復号化することも、無効である、文字化け

 

-------------------- -----------------------コーディング

= response1.contentデータ
プリント(sys.getdefaultencoding())#デフォルトエンコーディング表示
プリント(型(データ))
バイトの文字列を変換する方法の#二種類
の印刷(STR(データ、コード= 'UTF-8'))
印刷(data.decode( 'UTF-8 '))

= response2.contentのDATA2の
プリント(型(DATA2))
バイトの文字列を変換する方法の#二種類
プリント(=コードSTR(DATA2を、 'UTF-を8'))
(data2.decode( 'UTF-8')印刷)

-----------------結果-------------
データエラー:

トレースバック(最新の呼び出しの最後):
ファイル"E:/ PythonStudy /练习题/Request_ex.py"、52行、<モジュール>中
(STR(データ、エンコード= 'UTF-8'))を印刷
UnicodeDecodeError:「UTF-無効な継続バイト:8'コーデックは位置101でデコードバイト0xc5することはできません

  DATA2を正しく返します。

<DOCTYPE htmlの!> <HTML> <HEAD> <META HTTP-当量= "コンテンツタイプ" コンテンツ= "text / htmlの;のcharset = UTF-8"> <META HTTP-当量= "X-UA-互換性のある" コンテンツ= "IE =エッジ"> <メタコンテンツ= "決して" NAME = "リファラー"> <タイトル>百度一下、你就知道</タイトル> <スタイル> HTML、本体{高さ:100%} HTML {オーバーフロー-Y :自動車}体{フォント:12ピクセルのArial;背景:#FFF}体、P、形、UL、李{マージン:0;パディング:0;リストスタイル:なし}体、フォーム{位置:相対} TD {テキスト左} IMG {ボーダー:-align 0} {色:#1 00C}:アクティブ{色:#1 F60}入力{ボーダー:0;パディング:0} #wrapper {位置:相対; _position;分の高さ:100%}#ヘッド{パディング底:100pxに、テキスト整列:センター;}#ftCon {高さ:100pxに;位置:絶対;底:23px;テキスト整列:左;幅:100%;マージン:0自動; Zインデックス:0;オーバーフロー:隠さ} .ftConラッパー{オーバーフロー:隠された;マージン:0自動;テキスト整列:センター。} #qrcode {表示:インラインブロック;;}#QRコード.qrcode項目{フロート:左} #qrcodeの.qrcode項目-2 {マージン左:33px} #qrcode .qrcode-IMG {フロート:左;幅:60PX;高さ:60PX} #qrcode .qrcode項目-1 .qrcode-IMG {背景:URL(https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/home/ IMG / QRコード/ zbios_a4b2d86f.png)0 0なしリピート} #qrcode .qrcode項目-2 .qrcode-IMG {背景:URL(https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static /protocol/https/home/img/qrcode/nuomi_510f7472.png)0 0なしリピート} #qrcode .qrcodeテキスト{フロート:左;色:#999;行の高さ:23px;マージン:8px 0 0 10pxの} #qrcode .qrcodeテキストA {色:#999;テキスト装飾:なし} #qrcode .qrcodeテキストP {テキスト整列:左} #qrcode .qrcodeテキストB {色:#666;フォント重量: 700} #qrcode .qrcodeテキストスパン{文字間隔:1ピクセル} #ftConw {表示:インラインブロック;テキスト整列:左;マージン左:33px;行の高さ:22px;位置:相対;トップ:-2px ;;;}#ftConw、#ftConw A {色:#999} #lh {マージン左:25ピクセル} #lh#セス、#LH #setf {マージン左:0} {#wrapper最小幅:810px;高さ:100%;最小高さ:600PX} #head {位置:相対;パディング底:0;高さ:100%;最小高さ:600PX} #head .head_wrapper {高さ:100%}#フォーム{マージン:22px自動0;幅:641px;テキスト整列:左; Zインデックス:100} #FORM .bdsug {トップ:35px} #kw {位置:相対} #cp .C-アイコンicrlogo、#jgwab .C-アイコンjgwablogo {幅:14px;高さ:17px;表示:インラインブロック;オーバーフロー:隠された;背景:URL(https://ss1.bdstatic.com /5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/img/icons_0e814c16.png)なしリピート;}#CP .C-アイコンicrlogo {背景位置:-600px -96px;位置:相対。トップ:3px} #jgwab .C-アイコンjgwablogo {背景位置:-623px -96px;位置:相対;トップ:3px;マージン右:計6Px} .s_btn {幅:95px;高さ:32PX。パディングトップ:2ピクセル\ 9;フォントサイズ:14px;背景色:#ddd;背景位置:0 -48px;カーソル:ポインタ} .s_btn {幅100ピクセル、高さ:36px;色:#FFF;フォント-size:15ピクセルと、文字間隔:1ピクセル;背景:#3385ff;国境底:1ピクセル固体#2d78f4;概要:媒体;; - WebKitの出現:なし; -webkitボーダー半径:0} .s_btn.btnhover {背景:#317ef3;ボーダー底:1ピクセル固体#2868c8 ;;ボックスシャドウ:1ピクセル1ピクセル1ピクセル#CCC} .s_btn_wr {幅:97px;高さ:34px;表示:インラインブロック、背景位置:-120px - 48px ;; z屈折率:0、垂直整列:トップ} .s_btn_wr {幅:自動;高さ:自動;国境底:1ピクセル固体透明;} s_ipt_wr {高さ:34px} .s_ipt_wr.bg、.s_btn_wr。 BG、#su.bg {背景画像:なし} .s_ipt_wr {ボーダー:1ピクセル固体#1 b6b6b6;ボーダー色:#7b7b7b#b6b6b6#b6b6b6#7b7b7b;背景:#FFF;表示:インラインブロック;垂直整列:トップ;幅:539px;マージン右:0;のborder-right-幅:0;ボーダーカラー:#b8b8b8透明#CCC#1 b8b8b8;オーバーフロー:隠さ} .s_ipt {幅:526px;高さ:22px;フォント:16pxに/ 18pxのArial;行の高さ:22px \ 9;マージン:計6Px 0 7px;パディング:0;背景:0;ボーダー:0;概要:0; -webkit-外観:なし} .bdsug {位置:絶対;幅:418px;背景:#FFF;表示:なし;ボーダー:1ピクセル固体#817f82} .bdsug李{幅:511px;色:#000;フォント:14pxのArial;行の高さ:25ピクセル;パディング:0 8px;位置:相対;カーソル:デフォルト} .bdsug {トップ:35px;幅:538px;ボーダーカラー:#CCC ;ボックスシャドウ:1ピクセル1ピクセル3px #ededed ;; - WebKitのボックスシャドウ:1ピクセル1ピクセル3px #ededed; -mozボックスシャドウ:1ピクセル1ピクセル3px #ededed; -O-ボックスシャドウ:1ピクセル1ピクセル3px #ededed } .s_form {位置:相対;トップ:38.2パーセント} s_form_wrapper {位置:相対;トップ:-191px}#1 U1 {z屈折率:2;色:#FFF;位置:絶対;右:0;上部:0 ;マージン:19px 0 5pxの0;パディング:0 96px 0 0}#U1 A:リンク、#U1 A:訪問{色:#666;テキスト装飾:なし}#U1 A:ホバー、#U1 A:アクティブ{テキスト装飾:下線}#U1 A:アクティブ{色:#00C}#U1 a.bri、#U1 a.bri:訪問{表示:インラインブロック;位置:絶対;右:10pxの;幅:60PX ;高さ:23px;フロート:左;色:#FFF;背景:#38F;行の高さ:は24px;フォントサイズ:13px;テキスト整列:センター;オーバーフロー:隠された;ボーダー底:1ピクセル固体#1 38F。マージン左:19px;マージン右:2ピクセル}#U1 a.mnav、#U1 a.mnav:訪問{フロート:左;色:#333;フォント重量:700;行の高さ:は24px;マージン左:20ピクセル、フォントサイズ:13px;テキスト装飾:下線} </スタイル> </ head> <body> <DIV ID = "ラッパー"> <DIV ID = "ヘッド"> <DIV CLASS = "head_wrapper"> <DIV CLASS = "s_form"> <DIV CLASS = "s_form_wrapper"> <DIV ID = "LG"> <IMG SRC = "http://www.baidu.com/img/bd_logo1.png" 幅= "270"高さ= "129"> </ div> <>アクション= "https://www.baidu.com/s" クラス= "FM" メソッド= "GET"> <スパンクラス= "BG s_ipt_wr" "F" フォームID = "フォーム" 名= <スパンID = "ipt_photo"> </ span>を<入力されたID = "KW" 名=クラス= "s_ipt" 値= "" MAXLENGTH = "を "WD" 255" オートコンプリート= "隠れた">の<input type = "オフ" NAME =」つまり、 "値= "UTF-8">の<input type = "隠された" 名前= "rsv_op" 値= "">の<input type = "隠された" 名前= "TN" 値= "93879309_hao_pg">の<input type ="隠された」名前= "CH" 値= "">の<input type = "隠された" 名前= "rsv_su" 値= ""> </ span>の<スパンクラス= "BG s_btn_wr"> <入力タイプ= "提出" ID = "SU" 値= "百度一下" クラス= "BG s_btn"> </ span>を</ FORM> </ div> </ div> <DIV ID = "U1"> <A href = "http://www.nuomi.com" クラス= "mnav">糯米</a>の<a href="http://news.baidu.com" class="mnav">新闻する</a> <a href="http://www.hao123.com" class="mnav"> hao123 </a>の<a href="http://map.baidu.com" class="mnav">地图</ A> <a href="http://v.baidu.com" class="mnav">视频</a>の<a href="http://tieba.baidu.com" class="mnav">贴吧</a>の<a href="https://passport.baidu.com/v2/?login&tpl=mn&u=https%3A%2F%2Fwww.baidu.com%2F" class="mnav">登录</ A > <A HREF = "http://www.baidu。COM / gaoji / preferences.html」クラス= "mnav">设置</a>の<a href="http://www.baidu.com/more/" class="bri" style="display:block">更多产品</a>の</ div> </ div> </ div> <DIV ID = "ftCon"> <DIV CLASS = "ftConラッパー"> <DIV ID = "QRコード"> <DIV CLASS =」 QRコード・アイテムQRコード項目-1 "> <DIV CLASS =" QRコード-IMG "> </ div> <DIV CLASS =" QRコードテキスト "> <P> <B>手机百度</ B> </ P> <P> <スパン>快人一步</スパン> </ P> </ div> </ div> <DIV CLASS = "QRコード項目QRコード項目-2"> <DIV CLASS = "QRコード-IMG"> </ DIV> <DIV CLASS = "QRコードテキスト"> <P> <B>百度糯米</ B> </ P> <P> <span>を一元大餐</ span>を</ P> </ divの> </ div></ DIV> <DIV ID = "ftConw"> <P ID = "LH"> <ID = "setfの" HREF = "// www.baidu.com/cache/sethelp/help.html" れるonmousedown = "復帰ns_c({FM:&QUOT; BEHS&QUOT;、タブ:&QUOT;お気に入り&QUOT;、POS:0}) "ターゲット= "_ブランク">把百度设为主页</a>の<A HREF =" http://home.baidu .COM ">关于百度</a>の<a href="http://ir.baidu.com">について&NBSP;&NBSP; Baiduの</a>の<A HREF =" http://e.baidu.com/ ?2016&NBSP©= 888 ">百度推广</a>の</ P> <P ID =" CP ">参照;百度&NBSP; <a href="http://www.baidu.com/duty/">使用百度前必读</a>の&NBSP; <a href="http://jianyi.baidu.com/" class="cp-feedback">意见反馈</a>の&NBSP;京ICP证030173号&NBSP; <Iクラス= "C-アイコンicrlogo"> </ I> </ P> <a id="jgwab" target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11000002000001"> <I CLASS = "C-アイコンjgwablogo" > </ I>京公网安备11000002000001号</a>の</ DIV> </ DIV> </ DIV> <DIV ID = "wrapper_wrapper"> </ div> </ div> <スクリプトタイプ= "テキスト{R = Math.random(); T = r.toString(36); - ;(I私がlen。= VAR)のために、/のJavaScript ">関数GEN(LEN){VAR S ="」、R、T。 SUBSTR(2,1); S + = R> 0.5 t.toUpperCase():T}戻りs.substr(0、LEN)}関数$ N(N、P){P =(P || D); VAR S = p.getElementsByName(N);(VAR N O中)e.setAttribute(nは、[N 2 Oのために{(O)IF(s.length)リターンS [0]}関数$ SA(E、O)場合])、EN = [N 2 O]}関数FC(){VARさh = location.host、X = '=; =期限切れに' +新しい日(0).toUTCString()、Y = X + ';パス='、 Z = Y + '/;ドメイン='、L = [X、Y、Y + '/'、Z + H、Z + H。SUBSTR(h.indexOf() '')〕、O = D.cookie.match(/ [^ =;?] +(= \ =)/ G); IF(O && S)のための(VAR I = o.length J;(VARのJ = 5の場合); - ; - ; I)D.cookie = O [I] + L [J]; IF(window.localStorage)localStorage.clear();のsetTimeout(FC、500) } VAR D =文書、D = D、S = D.cookie.match(/ホーム= S / I);!D.oncontextmenu =機能(){リターン偽};試み{FC();場合(D.URL .match( '#'))location.replace( 'http://www.baidu.com/s?'+location.hash.replace(/ ^#/、' ')); $ SA($ N(」 rsv_op ")、{値:GEN(96)}); $ SA($ N(" rsv_su」)、{値:GEN(96)})}キャッチ(E){} </ SCRIPT> </ body> < / HTML>もし(D.URL.match( '#'))location.replace( 'http://www.baidu.com/s?'+location.hash.replace(/ ^#/、' ')); $ SA ($ N( "rsv_op")、{値:GEN(96)}); $ SA($ N( "rsv_su")、{値:GEN(96)})}キャッチ(E){} </ SCRIPT> </ body> </ html>このもし(D.URL.match( '#'))location.replace( 'http://www.baidu.com/s?'+location.hash.replace(/ ^#/、' ')); $ SA ($ N( "rsv_op")、{値:GEN(96)}); $ SA($ N( "rsv_su")、{値:GEN(96)})}キャッチ(E){} </ SCRIPT> </ body> </ html>この

おすすめ

転載: www.cnblogs.com/wljlxx/p/12116758.html