0
私は、このコードスニペットを大きなファイルの一部として持っています。私がそれを実行すると、forループの出力は私が探しているものであり、うまく印刷されます。ただし、最後の項目のテキストのみが.txtファイルに保存されます。私はPythonには新しく、これはシンプルで初心者の間違いだと感じていますが、私はここで困惑しています。一番上に新しいファイルを作ってその問題を解決すると思ったが、運がない。リスト内の最後の項目のみが保存されます
with open("all_ctrl_pk_articles.txt","w") as f:
f.write("")
for url in ctrl_pk_list:
re = requests.get(url)
soup = BeautifulSoup(re.content, "html.parser")
g_data = soup.find_all("div", {"class": "story-body-supplemental"})
for item in g_data:
print item.contents[1].text #WANT TO SAVE THIS TEXT
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
#print soup.text
newsoup = soup.text
f.write(newsoup)
with io.open("all_ctrl_pk_articles.txt","a", encoding = "utf-8") as f:
f.write(newsoup)
f.close()
あなたの 'print'は内側のループにあります。そこにあなたの '書き込み'もしたくないですか?また、改行がなければ改行を書く必要があります。 – kabanus
書き込み呼び出しはループ内にある必要があります。または、再割り当てする代わりにnewsoupに追加する必要があります。ループを通過するたびに、 "newsoup = soup.text"は単にその名前を新しいデータに再割り当てします。あなたはあなたのデータに追加したい。 –