我得到一個網站的文字文章在python
和BeatifulSoup
的幫助下。現在我有一個奇怪的問題......我只是打印出多個p
標籤中的文本,這些標籤位於dr_article
類的div中。現在的代碼看起來像這樣:Python和美麗的湯,拿起所有元素
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'
但是,當我.text
之前只選擇與[0]
的第一個元素我沒有收到錯誤,它按照應該的方式工作。它獲取第一個元素文本。準確地說我修改我的代碼,它看起來像這樣:
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( 'P')'的結果呢? –