Используя красивый суп, чтобы получить значение атрибута HTML - PullRequest
1 голос
/ 18 июня 2019

Я пытаюсь использовать красивый суп, чтобы получить значение атрибута html.

То, что у меня есть, это:

soup = BeautifulSoup(html, "html.parser")
print("data-sitekey=" + soup.find("div", {"class" : "data-sitekey"}))
return soup.find("div", {"class" : "data-sitekey"})

Но это возвращает "должно быть str, а не nulltype"

любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 18 июня 2019

вы должны попробовать следующее

soup = BeautifulSoup(html, "html.parser")
print("data-sitekey=" + soup.find("div", attrs={"class" : "data-sitekey"}))
return soup.find("div", attrs={"class" : "data-sitekey"})
0 голосов
/ 18 июня 2019

Я предполагаю, что ваш find() метод возвращает None, поэтому вы не можете объединить строку в строке # 2.

>>> print('' + None)                                       
Traceback (most recent call last):                         
  File "<stdin>", line 1, in <module>                      
TypeError: can only concatenate str (not "NoneType") to str

Это сообщение об ошибке, которое я получаю в Python 3.7
Это не проблема Супа, вы должны явно проверить возвращаемое значение.

Предоставьте больше информации (stacktrace), если это не так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...