Эта ошибка была задокументирована несколько раз на SO, но в моем случае это происходит только в Windows (Windows 10). Он прекрасно работает на Ubuntu для меня.
Это код, который выдает ошибку:
for value in content.findAll('td', attrs = {"class":"tdWhite"}):
if value.div:
values.append(re.sub(r'\s+', ' ', value.div.text.encode('utf-8').strip()))
else:
values.append(value.text.encode('utf-8').strip())
Вот сообщение об ошибке:
Traceback (most recent call last):
File ".\driverscraper.py", line 39, in <module>
values = getDictionary(url)
File ".\driverscraper.py", line 21, in getDictionary
values.append(re.sub(r'\s+', ' ', value.div.text.encode('utf-8').strip()))
File "C:\Python38\lib\re.py", line 208, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: cannot use a string pattern on a bytes-like object
Также я попытался:
values.append(re.sub(b"\s+", b" ", value.div.text.encode('utf-8').strip()))
Но вышеприведенный вывод печатных символов в моем csv выглядит так:
b '\ xc2 \ xa027030000077'