Python
のRequests
で取得したデータをpyquery
に渡す。
Webサイトによっては、文字コード指定がうまくいかないのか、
requests.get
のレスポンスres
でres.text
すると文字化けする。
このres
をそのままpyquery
に渡すと、やはりこちらでも文字化けする。
そういうときは大体、以下からわかるように、
>>> res.encoding
'ISO-8859-1'
というエンコーディングが指定されている。調べると、ラテンアルファベットの文字コード標準だそうだ。
res.encoing
に適切な文字コードを指定すればいい。
幸い、Requests
には、res.content
の内容から文字コードをchardet
を使って推定してくれる、
res.apparent_encoding
というプロパティがある。これを利用して、
>>> res.apparent_encoding
'utf-8'
>>> res.encoding = res.apparent_encoding
>>> res.text
... # 文字化けしなくなる
とすれば適切なエンコーディングが行われる。この指定を行ってから、pyquery
に渡せば、
>>> d = pq(res.text)
>>> d.text()
... # こちらも文字化けしない
文字化けしなくなる。
こちらもどうぞ。
Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-
posted with amazlet at 18.09.21
加藤 耕太
技術評論社
売り上げランキング: 5,263
技術評論社
売り上げランキング: 5,263
コメント