Извлечение текста между тегами ссылок в python с помощью BeautifulSoup - PullRequest
1 голос
/ 06 июня 2011

У меня есть HTML-код, подобный этому:

<h2 class="title"><a href="http://www.gurletins.com">My HomePage</a></h2>

<h2 class="title"><a href="http://www.gurletins.com/sections">Sections</a></h2>

Мне нужно извлечь тексты (описания ссылок) между тегами «а». Мне нужен массив для хранения таких как:

a [0] = "Моя домашняя страница"

a [1] = "Разделы"

Мне нужно сделать это в python, используя BeautifulSoup.

Пожалуйста, помогите мне, спасибо!

Ответы [ 3 ]

1 голос
/ 06 июня 2011

Вы можете сделать что-то вроде этого:

import BeautifulSoup

html = """
<html><head></head>
<body>
<h2 class='title'><a href='http://www.gurletins.com'>My HomePage</a></h2>
<h2 class='title'><a href='http://www.gurletins.com/sections'>Sections</a></h2>
</body>
</html>
"""

soup = BeautifulSoup.BeautifulSoup(html)

print [elm.a.text for elm in soup.findAll('h2', {'class': 'title'})]
# Output: [u'My HomePage', u'Sections']
0 голосов
/ 23 января 2018

Следующий код извлекает текст (описания ссылок) между тегами 'a' и сохраняет в массиве.

>>> from bs4 import BeautifulSoup
>>> data = """<h2 class="title"><a href="http://www.gurletins.com">My 
HomePage</a></h2>
...
... <h2 class="title"><a href="http://www.gurletins.com/sections">Sections</a>
</h2>"""
>>> soup = BeautifulSoup(data, "html.parser")
>>> reqTxt = soup.find_all("h2", {"class":"title"})
>>> a = []
>>> for i in reqTxt:
...     a.append(i.get_text())
...
>>> a
['My HomePage', 'Sections']
>>> a[0]
'My HomePage'
>>> a[1]
'Sections'
0 голосов
/ 04 июля 2014

печать [a.findAll (text = True) для a in soup.findAll ('a')]

...