Une histoire lorsque vous souhaitez spécifier l'attribut name lors de l'obtention de l'élément html avec BeautifulSoup.
#Exemple d'acquisition
source = soup.find('div', class_='hogehoge')
Fondamentalement, il est acquis en spécifiant soup.find ('tag name', attribute name = 'value') de cette manière. Cependant, si vous écrivez ceci dans l'attribut name, une erreur se produira.
#Exemple d'acquisition
source = soup.find('input', name='hogehoge', type='hidden')
Résultat d'exécution
TypeError: find() got multiple values for keyword argument 'name'
Cela semble être une erreur car le nom de l'argument est déjà défini dans la méthode find de BeautifulSoup.
source = soup.find('input', attrs={'name': 'hogehoge', 'type': 'hidden'})
Il semble que vous puissiez spécifier l'attribut name en passant une valeur de type dictionnaire à l'argument attrs, alors spécifiez-le avec ceci.
source = soup.find('input', {'name': 'hogehoge', 'type': 'hidden'})
Vous pouvez obtenir le même résultat même si vous omettez l'argument, alors choisissez celui que vous aimez.
Parameters for find function [Python: valeur d'attribut BeautifulSoup-Get basée sur l'attribut name](https://www.it-swarm.dev/ja/python/python%EF%BC%9Abeautifulsoup%E5%90%8D%E5% 89% 8D% E5% B1% 9E% E6% 80% A7% E3% 81% AB% E5% 9F% BA% E3% 81% A5% E3% 81% 84% E3% 81% A6% E5% B1% 9E% E6% 80% A7% E5% 80% A4% E3% 82% 92% E5% 8F% 96% E5% BE% 97% E3% 81% 97% E3% 81% BE% E3% 81% 99 / 1068412706 /)
Recommended Posts