Как добавить несколько тегов перед одним тегом BeautifulSoup - PullRequest
0 голосов
/ 04 марта 2019

У меня есть один тег

Мне нужно добавить три тега, прежде чем он будет иметь другой текст, я пробовал как:
headTag = soup.find_all('h1', text='Attendance List')
aTag = soup.new_tag('a') 
aTag['class'] = "btn btn-default pull-right"
aTag.string = "Today"
headTag[0].insert_before(aTag)
aTag.string = "Weekly"
headTag[0].insert_before(aTag)
aTag.string = "Monthly"
headTag[0].insert_before(aTag)

Но это только добавление последнего, естьлучший способ сделать это без объявления нескольких переменных?

1 Ответ

0 голосов
/ 04 марта 2019

Проблема в том, что вы создаете только один тег, а затем неоднократно модифицируете его атрибут string вместо создания трех отдельных тегов и вставки всех из них.Вот почему он добавляет только один тег и почему конечный результат является последним из строк.

Чтобы сделать то, что вы хотите, используйте цикл for и создайте новый тег для каждой из строк, например:

headTag = soup.find_all('h1', text='Attendance List')

for s in ["Today", "Weekly", "Monthly"]:
    aTag = soup.new_tag('a') 
    aTag['class'] = "btn btn-default pull-right"
    aTag.string = s
    headTag[0].insert_before(aTag)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...