Я использовал Crawler, чтобы собрать имена известных художников, певцов, музыкантов, групп. многие имена в моем списке структурированы с фамилией перед именем и запятой в середине. Я пишу пример из моего списка:
Aalegra, Snoh
Beach Boys
Groove Coverage
Night Verses
Gang Of Youths
Marcy Playground
Fito Blanko
Lowery, Clint
Josh Garrels
Pausini, Laura
Moses, Joe
Julian Trono
Meg Donnelly
Jack Gray
Jola, Marion
Pink Floyd
Judd, Wynonna
Bo Bruce
У меня есть функция, которая берет html википедии и извлекает некоторую информацию из таблицы справа (информация, такая как происхождение группы или дата и место рождения, о человеке и т. д.) но когда строка "фамилия, имя", википедия явно не находит страницу.
какие-либо идеи?
Должен ли я изменить все Строки, которые представляют эту проблему? или избегать использования запросов и попробовать селен? Я не знаю самый короткий и простой способ ...
ниже моего foo:
def get_other_info(artist):
r = requests.get('https://en.wikipedia.org/wiki/' + artist).text
sleep(randint(2,15))
obj = BeautifulSoup(r, 'html.parser')
table = obj.find('table', class_='infobox vcard plainlist')
for t in table.select('th'):
if t.text == 'Origin' or t.text == 'Born':
orig = t.find_next_siblings('td')[0].text
elif t.text == 'Genres':
gen = [i.text for i in t.find_next_siblings('td')[0].find_all('li')]
elif t.text == 'Years active':
yr = t.find_next_siblings('td')[0].text
return [orig, gen, yr]