テキストのモジュールやコンテンツをデコードするPythonのクローラーを要求

モードをデコードクロールWebコンテンツへのモジュールについて、今日言うことを要求

違いはresponse.textとresponse.contentです

この方法は、取得し、ポストの要求を返しますResponseオブジェクト、オブジェクト 、サーバー、頭、レスポンスのステータスコードを含むレスポンスによって返されたすべての情報が格納されたオブジェクトを。前記復帰 Webパーツに背中と.contentの.textがあるだろう 梁は、 内のオブジェクト
両者の違いは、中間コンテンツがバイトストリームデータが格納されていること 、およびテキストは、その符号化モジュールに従って格納され、コンテンツがUnicodeにエンコードされたコンテンツを推測要求します
 
ページ上のコンテンツはでエンコードされたので、我々は(復号化されるコンテンツのrequests.content出力を、多くの場合を使用したが、本形態であるPythonのUnicode文字列では、当然のことながら、我々は、これらの文字列を見たいと思ってしたくありませんバイトの混乱を参照してください、私たちはそれが)のデコードに必要なものを降り
 
その後、我々はそれ(フォーカスの焦点を)エンコードする方法
コードを書く前に、私たちは、Webページのエンコーディングを見つける必要があります
 

まず第一には、コーディング、Webページ上のページを見つけるために取得するために登ります

ステップ:F12 ==「」の要素(ソースページ)==「」我々は、ロゴ内の<head>文字セットを見つけ、対応するページには、それをエンコードしています

 

Webページをコーディングすると、そのためのコードを書くために続けることができます

 1.コンテンツの出力

print(response.content.decode('utf-8'))  #decode('utf-8')的意思是以utf-8的编码的方式解码为Unicode

2.テキスト出力を使用して

response.encoding = 'utf-8'  #为请求的网页指定该网页的编码方式,这样text输出的时候,就不会瞎猜编码方式,而解出乱七八糟的鬼
print(response.text)

参照コード(レスポンス上記参照コードに内部からのものです)

import requests


kw = {'wd':'巴基斯坦'}


headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}


# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
#这就是requests库的其中一个方便的地方

response = requests.get("http://www.baidu.com/s", params = kw, headers = headers)


# 查看响应内容,response.text 返回的是Unicode格式的数据
print(response.text)


# 查看响应内容,response.content返回的字节流数据
print(response.content)


# 查看完整url地址
print(response.url)


# 查看响应头部字符编码
print(response.encoding)


# 查看响应码
print(response.status_code)

 

いくつかは、私は、Webページのエンコーディングを表示し、印刷(response.encoding)を使用し、疑問を持ってこちらをご覧ください

その後、再びそれをデコードしませんか?なぜか?なぜか?(あなたは私の痙攣を得ることができないと言います)

 

回答:もちろんそれはハッハッハハッハッハOKである(これは大きな卵であるので、それをコードするページを取得する方法は2つあります)

しかし、時には、それは間違っている可能性があります。print(response.encoding)getで例クライミングBaiduのためにシングルバイトISO-8859-1エンコーディングです

しかし、私はシングルバイトコードは中国のああを表現することができないため、「UTF-8」エンコーディングは、その後、私はUTF-8デコーディングを使用することが決定キーを押しF12が実際に表示するためにBaiduのウェブサイトに行ってきました!

だから、時にはうまくいかない、あなたはこれらの2つの方法を試すことができます(私は白だったので、現在私が知っていることは、これら二人の友人です)

それらのすべては、愛の脳のギャルズです.....喜喜喜喜(いわゆる「のように」私を与えていないと言います?)

-------------------------------------------------- --------------------------------------------

 

もちろん、誰かが、あなたを聞いてきます。このコード壊す事は非常に理解していない、あなたはソートソート私を助けることができます

ハッハッハハッハッハ、私はいくつかのより多くの賞賛の賞賛の賛美賞賛を与えます

知識ビッグラン:

エンコード()とデコード()と平均差

英語デコード手段のデコード、エンコード英語の意味がコーディングされています

Pythonの文字列表現は、内部でユニコード符号化トランスコーディングを行う場合、典型的にはユニコードのために必要に応じて、従って、中間コード最初のユニコードに他のエンコードされた文字列(デコード)を復号化であり、およびユニコード符号化(エンコード)からに別のエンコーディング。

アクションは、ユニコード符号化str101このようなstr101.decode(「UTF-8」)のような他のUnicodeエンコーディング、ショーバイトの変換、UTF-8でエンコードされた文字列に変換されエンコードされた文字列をデコードします

役割は、他のそのようなstr101.encodeとして、コーディング(「2312」)に符号化エンコードUnicode文字列であり、符号化された2312にエンコードされたUnicode文字列str101を変換することを示し

この手段はほとんどハッハッハです

最後に、宝の地図(参考になりましハンサム道、私に賞賛ああのセットを与えることを覚えている)を提供します

リリース3元の記事 ウォンの賞賛2 ビュー28

おすすめ

転載: blog.csdn.net/m0_46397094/article/details/105349772