Я знаю, что это старый поток, но ни одно из этих решений не решило проблему для меня. Что для меня работало, это обновить спящий режим до версии 5.2.10.Final (см. this SO post ).
Запуск Spring Boot и Spring Data JPA 1.5.4.RELEASE и спящий режим 5.2.10.Final.
Контент здесь является байтовым объектом. Вы пытаетесь найти строку в байтовом объекте. Преобразуйте содержимое в строку, изменив строку
Content = response.read()
на
Content = str(response.read())
Я не понимаю, почему аргумент 'str' в первую очередь.
blockquote>Потому что это то, что вы передали:
'<body>'
является литеральнымstr
объектом. И прежде чем вы спросите,Content
- это объектbytes
, который необходимо декодировать (используя кодировку, в которой должен быть объявлен в ответе), чтобы получить правильную строку.Теперь гораздо более простое решение - которое рекомендует сам документ
urllib
- это использовать библиотеку python-запросов из 3-х частей, которая позаботится об этих досадных деталях.Кроме того, если вы хотите анализировать HTML, во всех случаях используйте правильный анализатор HTML (BeautifulSoup - рекомендуемый выбор, если вам приходится иметь дело с возможно искаженным html, который является безусловно наиболее распространенным случаем).
Content
имеет тип bytes
, поэтому аргументом для Content.find
должно быть bytes
или int
, но '<body>'
имеет тип str
. Итак, у вас есть несовпадающие типы.
Как исправить: преобразовать str
в bytes
:
Content.find(b'<body>')