Python получить текст из тега <a> - PullRequest
0 голосов
/ 27 августа 2018

У меня есть список веб-страниц, по которым я зацикливаюсь.Моя цель - получить текст с каждой из этих веб-страниц, если что-то есть.Я ищу определенные элементы -tag, которые имеют одинаковое className.Первая часть (зацикливание) работает отлично, но по какой-то причине я получаю только значение [Нет] при печати текста с тегами.

вот что я делаю:

jotain = []
col = 3
for row, urls in enumerate(links):
    page = requests.get(urls)
    soup = BeautifulSoup(page.content, 'html.parser')
    sposti = soup.find('a', {'class' : '_contactLink_1i8pl_1'})
    jotain.append(sposti)
    print(jotain.text)

sheet.write(row, col, sposti)

Возвращает меня: «AttributeError: у объекта 'list' нет атрибута 'text'"

И этокак выглядит HTML:

<a class="_contactLink_1i8pl_1" href="mailto:info@talligym.fi">info@talligym.fi</a>

Спасибо за помощь заранее!

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

jotain - это список, содержащий элементы вашего атрибута, попробуйте

jotain.append(sposti.text)
print(jotain)

Редактировать: Проверьте, действительно ли вы сначала получаете данные, напечатав переменную 'sposti' просто для отладки.

0 голосов
/ 27 августа 2018

Вы добавили теги в список и пытаетесь получить текст из этого списка.Вот почему ошибка была брошена.Попробуйте это.

jotain.append(sposti.text)
print(jotain)

Вы также можете попробовать понимание списка.

jotain.append(sposti)
jotain = [i.text for i in jotain]
print(jotain)

Надеюсь, это даст ясность!Ура!

0 голосов
/ 27 августа 2018

Вы добавляете данные, найденные в soup, в список jotain, вам не нужно вызывать jotain.text в списке, это то, что вам нужно сделать, чтобы прочитать текст, найденный в soup,Вам нужно будет добавить текстовую часть от soup до jotain;

jotain.append(sposti.text)

Просто позвоните print(jotain), и он вернет то, что вам нужно.

РЕДАКТИРОВАТЬ: Вы также можетехотите использовать soup.findall, если у вас более одного совпадающего тега, в противном случае он вернет только первое найденное значение.

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