Я получаю текстовую статью с одного сайта с помощью python
и BeatifulSoup
. Теперь у меня странная проблема ... Я просто wana распечатываю текст внутри нескольких тегов p
, которые находятся в div с классом dr_article
. Теперь с кодом вида:Python and Beautiful soup, pick up Все элементы
from bs4 import BeautifulSoup
def getArticleText(webtext):
soup = BeautifulSoup(webtext)
divTag = soup.find_all("div", {"class":"dr_article"})
for tag in divTag:
pData = tag.find_all("p").text
print pData
я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
execfile("word_rank/main.py")
File "word_rank/main.py", line 7, in <module>
articletext.getArticleText(webtext)
File "word_rank\articletext.py", line 7, in getArticleText
pData = tag.find_all("p").text
AttributeError: 'list' object has no attribute 'text'
Но когда я выбираю только первый элемент с [0]
перед тем .text
я не получаю сообщение об ошибке и работает как предполагается. Он получает текст первого элемента. Чтобы быть точным, я могу изменить мой код, и это выглядит следующим образом:
from bs4 import BeautifulSoup
def getArticleText(webtext):
soup = BeautifulSoup(webtext)
divTag = soup.find_all("div", {"class":"dr_article"})
for tag in divTag:
pData = tag.find_all("p")[0].text
print pData
Мой вопрос, как я могу получить текст из всех элементов сразу? Что изменить, чтобы я не получал текст только от одного элемента, а от всего?
ли вы попробовать * зацикливание * за счет '.find_all ('р')'? –