python
との助けを借りて、ある Web サイトからテキスト記事を取得していますBeatifulSoup
。p
今、私は奇妙な問題を抱えています... class で div にある複数のタグ内のテキストを印刷したいだけdr_article
です。コードは次のようになります。
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
私の質問は、一度にすべての要素からテキストを取得するにはどうすればよいですか? 1 つの要素だけからテキストを取得するのではなく、すべての要素からテキストを取得するには、何を変更すればよいですか?