Вы выбираете div, когда на самом деле вас интересуют значения, содержащиеся в кнопках внутри этих div. Первой задачей было бы получить кнопки. Чтобы сделать это, давайте изменим select
info = soup.select(".sub_section_heading button")
. При этом получаются все кнопки, содержащиеся в div с классом .sub_section_heading
.
. Здесь вы хотите создать список, содержащий только текст в кнопке немного понимания списка поможет здесь.
button_texts = [x.text for x in info]
button_texts
будет список только с названиями кнопок, но могут быть повторы, если есть несколько div. Чтобы сделать список отчетливым, используйте
distinct_texts = list(set(button_texts))
Полный код для этого приведен ниже.
default_url = 'https://fbref.com'
url = default_url + row['squad_href']
res = requests.get(url)
## The next two lines get around the issue with comments breaking the parsing.
comm = re.compile("<!--|-->")
soup = BeautifulSoup(comm.sub("",res.text),'lxml')
info = soup.select(".sub_section_heading button")
button_texts = [x.text for x in info]
distinct_texts = list(set(button_texts))