私は文字列を持っています:
'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
そして私が欲しい:
b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
しかし、私は取得し続けます:
b'BZh91AY&SYA\\xaf\\x82\\r\\x00\\x00\\x01\\x01\\x80\\x02\\xc0\\x02\\x00 \\x00!\\x9ah3M\\x07<]\\xc9\\x14\\xe1BA\\x06\\xbe\\x084'
環境
Web ページから文字列を切り取り、変数に格納しましたun
。次に、BZip2 を使用して解凍します。
bz2.decompress(un)
ただし、オブジェクトであるため、次のエラーが発生しますun
。str
TypeError: a bytes-like object is required, not 'str'
したがって、un
単一のバックスラッシュをエスケープされたバックスラッシュに変更せずに、バイトのようなオブジェクトに変換する必要があります。
編集1: すべての助けをありがとう!@wimあなたの言いたいことはわかりましたが、ウェブスクレイピングメソッドからバイトのようなオブジェクトを取得する方法について途方に暮れています:
r = requests.get('http://www.pythonchallenge.com/pc/def/integrity.html')
doc = html.fromstring(r.content)
comment = doc.xpath('//comment()')[0].text.split('\n')[1:3]
pattern = re.compile("[a-z]{2}: '(.+)'")
un = re.search(pattern, comment[0]).group(1)
私が使用しているパッケージは、、、、requests
およびです。lxml.html
re
bz2
繰り返しますが、私の目標は をun
使用して解凍するbz2
ことですが、Web スクレイピング プロセスからバイトのようなオブジェクトを取得するのに苦労しています。
ポインタはありますか?