この行のすべての img タグをループして、それぞれを出力しています。
for link in soup.find_all('img'):
print link.get('src')
ただし、そのループでファイルに書き込むのlink.get('src')+'\n'
ではなく、最後に書き込むだけです。
これは、現在割り当てられているリンクのみを書き込みます。これは、上記のループで見つけた最後のimg タグです。そのため、'src' 値が 1 つだけ出力ファイルに書き込まれます。
関心のある各 img タグを通過するループ内のファイルに各行を書き込む必要があります。これを行うには、少し再配置する必要があります。
from bs4 import BeautifulSoup
soup = BeautifulSoup(open("youtube.htm"))
file = open("parseddata.txt", "wb")
for link in soup.find_all('img'):
print link.get('src')
file.write(link.get('src')+"\n")
file.flush()
file.close()
上記のスニペットの最後の行に追加したように、ファイルを閉じることも忘れないでください。
with
編集: 以下の Hooked のコメントによると、キーワードを使用すると、このスニペットは次のようになります。を使用with
すると、インデントされたブロックが終了するとすぐにファイルが自動的に閉じられるため、それについて考える必要さえありません。
from bs4 import BeautifulSoup
soup = BeautifulSoup(open("youtube.htm"))
with open("parseddata.txt", "wb") as file:
for link in soup.find_all('img'):
print link.get('src')
file.write(link.get('src')+"\n")