私はPython 3で作業しています。私の目的は、1つのテーブルのdifferents値を抽出し、それらを異なるリストに入れることです。BeautifulSoup: "img alt"コンテンツを抽出するPythonのWebスクレイピング
問題は、私はtdで "img alt"の値を取ることができないということです。
これは私のコードです:
from bs4 import BeautifulSoup
import urllib.request
redditFile = urllib.request.urlopen("http://www.mtggoldfish.com/movers/online/all")
redditHtml = redditFile.read()
redditFile.close()
soup = BeautifulSoup(redditHtml)
all_tables = soup.find_all('table')
right_table = soup.find('table', class_='table table-bordered table-striped table-condensed movers-table')
#create a list
A=[]
B=[]
C=[]
D=[]
for row in right_table.findAll("tr"):
cells = row.findAll('td')
increment = row.findAll('span')
colection = row.findAll('img')
link = row.findAll('a')
if len(cells) == 6:
A.append(cells[0].find(text=True))
B.append(increment[0].find(text=True))
C.append(colection[0])
D.append(link[0].find(text=True))
print(A)
print(B)
print(C)
print(D)
このコードは、私にこの結果を与える:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
['+8.40', '+2.47', '+1.35', '+1.28', '+1.14', '+0.99', '+0.94', '+0.91', '+0.90', '+0.75']
[<img alt="ORI" class="sprite-set_symbols_ORI" src="//assets1.mtggoldfish.com/assets/s-407aaa9c9786d606684c6967c47739c5.gif"/>, <img alt="PRM" class="sprite-set_symbols_PRM" src="//assets1.mtggoldfish.com/assets/s-407aaa9c9786d606684c6967c47739c5.gif"/>, <img alt="8ED" class="sprite-set_symbols_8ED" src="//assets1.mtggoldfish.com/assets/s-407aaa9c9786d606684c6967c47739c5.gif"/>, <img alt="EX" class="sprite-set_symbols_EX" src="//assets1.mtggoldfish.com/assets/s-407aaa9c9786d606684c6967c47739c5.gif"/>, <img alt="TSB" class="sprite-set_symbols_TSB" src="//assets1.mtggoldfish.com/assets/s-407aaa9c9786d606684c6967c47739c5.gif"/>, <img alt="WL" class="sprite-set_symbols_WL"
SRC = "// assets1.mtggoldfish.com/assets/s-407aaa9c9786d606684c6967c47739c5.gif"/を「ペンダントヘビ」、「ファイヤストーム」、「コー・スピリットダンサー」、「スケルティング・ターン」、「ペインティング・ページョン」、デイブレイクコロネット '、'バーウィルズの森 '
しかし、私は私が行うことができます任意のアイデアを持っていない
colection variable
(exemple最初のimg ALT値のために「ORI」である)でのIMG ALT値が必要です。みんな、これで私を助けてくれますか?事前にそんなに
おかげ
パドレイク、ご協力いただきありがとうございます!あなたのプリントはとてもうまく動作します。しかし、私の問題は、私はこの値を私の変数に入れたいときです(colection = row.find( 'img')["alt"])これは私にこのエラーを示していますcolection = row.find( 'img')["alt"] TypeError: 'NoneType'オブジェクトにサブスクリプトがありません ありがとうございます。 –
@CarlosRocaPin上記のコードをそのまま使用すると、必要なすべてのデータが得られます。私はaltを追加するのを忘れましたが、彼らは今編集中です –
Padricちょうど私はあなたの最後の答えを読んでいます。本当にありがとう!!!!完璧に動作します!私はコードをスタッドにします。 ありがとうございます!!!!ミュシャ・グラシアス!!!! –