5

私は文字列を持っています:

'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)

ただし、オブジェクトであるため、次のエラーが発生しますunstr

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.htmlrebz2

繰り返しますが、私の目標は をun使用して解凍するbz2ことですが、Web スクレイピング プロセスからバイトのようなオブジェクトを取得するのに苦労しています。

ポインタはありますか?

4

2 に答える 2