27062016 Python
requests+pyqueryで文字列の扱いに悩まされるのは主に二箇所ある。そしてその組み合わせのエラーが出るので悩ましい。
一点目はrequestsでの文字化け
requestsでcontentとtextの違いはtextはr.encodingでdecodeされたunicode文字列だということだ。なので正しくデコードされたunicode文字列を推定できればrequestsでの文字化け問題は解決する
だが常にunicode文字列をpyqueryに渡せばOKかというとそうでもない。
Unicode文字列をpyqueryに渡すと起きるエラー(Unicode strings with encoding declaration are not supported.)
常にUnicode文字列を渡すようにすると Unicode strings with encoding declaration are not supported. というエラーが散見されるようになる。これはpyqueryが内部的に使っているlxmlがヘッダーにエンコーディングが指定しているHTMLを渡すとそれにあわせてデコードしようとするらしく、既にユニコード文字列化されたHTMLもその作法にしたがってエラーになるというものだ。
というわけでこの場合はもとのstr文字列を渡さないといけないらしい。
これが結構面倒くさい。requestsでヘッダーにエンコーディングが指定されているかどうか知るオプションあるんかね?
僕だけがいない街(1)<僕だけがいない街> (角川コミックス・エース)
僕だけがいない街(2)<僕だけがいない街> (角川コミックス・エース)
僕だけがいない街(3)<僕だけがいない街> (角川コミックス・エース)
僕だけがいない街(4)<僕だけがいない街> (角川コミックス・エース)
僕だけがいない街(5)<僕だけがいない街> (角川コミックス・エース)
僕だけがいない街(6)<僕だけがいない街> (角川コミックス・エース)
僕だけがいない街(7)<僕だけがいない街> (角川コミックス・エース)
僕だけがいない街(8)<僕だけがいない街> (角川コミックス・エース)







HUNTER×HUNTER モノクロ版 33 (ジャンプコミックスDIGITAL)
振り飛車4→3戦法 (マイナビ将棋BOOKS)
