2017-02-23 3 views
1

にBeautifulSoupを使用して、HTMLテーブルから抽出されたテキストを格納する私はbeautifulsoupを使用してWebページを解析:(パイソン) - どのように構造化さPythonのリスト

import requests 
from bs4 import BeautifulSoup 
page = requests.get("webpage url") 
soup = BeautifulSoup(page.content, 'html.parser') 

私はテーブルを検索し、テキスト

Ear_yield= soup.find(text="Earnings Yield").parent 
print(Ear_yield.parent.text) 
を印刷私はこの出力を希望

Earnings Yield 
0.01 
-0.59 
-0.33 
-1.23 
-0.11 

そして私は、テーブル内の単一の行の出力を得るには、李に格納されます私はxlsに印刷して要素を操作することができます(ex(if Earnings Yield [0]> Earnings Yield [1])。 だから私は書く:

import html2text 
text1 = Ear_yield.parent.text 
Ear_yield_text = html2text.html2text(pr1) 

list_Ear_yield = [] 
for i in Ear_yield_text : 
list_Ear_yield.append(i) 

は私のウェブデータがリストに入っていることを考えます。私は4番目の項目を印刷して確認してください。

print(list_Ear_yield[3]) 

私は-0.33として出力を期待するが、私は

n 

を取得するリストがいっぱい単語個々の文字を取り込んでいないことを意味し: を私に聞かせてください私が間違っていることを知ってください

答えて

2

これはあなたのEar_yield_textがリストではなく文字列であるためです。テキストはあなたが直接これを行うことができ、新たなラインを持っていると仮定すると:

list_Ear_yield = Ear_yield_text.split('\n') 

を今、あなたはlist_Ear_yieldを印刷する場合は、この結果にたくさん@Zroqを

['Earnings Yield', '0.01', '-0.59', '-0.33', '-1.23', '-0.11'] 
+0

感謝を与えられます。それはすぐにそれを解決しました。 – Stelios

関連する問題