我是Python新手。从文档中提取列表时遇到问题。我的源文件不是真正的html,但它有一个标签来提取所需的数据。
我设法使用此代码提取所需的数据
from bs4 import BeautifulSoup
url = r"E:\Python\Sources\test.review"
page = open(url)
soup = BeautifulSoup(page.read())
for review in soup.find_all(['review_text','product_name']):
tokens=review.get_text()
print tokens
然而,如何打破结果的问题,因为我不熟悉使用Python中的列表。我尝试使用此代码,但它只返回第一个数据。我相信它,因为它引用文件中的第一个数据。感谢您的所有反馈。
rvwTxt=soup.review_text.string
pName=soup.product_name.string
print rvwTxt
print pName
答案 0 :(得分:-1)
您可以使用标签名称对dict进行分组,以便进行分组,这样您就可以一次完成:
soup = BeautifulSoup(page.read(),"xml")
d = {"review_text":[], "product_name": []}
for review in soup.find_all(['review_text','product_name']):
d[review.name].append(review.get_text())
或者使用两个列表组合:
rev = [r.text for r in soup.find_all('product_name')]
prod = [p.text for p in soup.find_all('review_text')]