Python 爬网的数据可以完全打印在终端上,但不能完全以文本形式写入

Python 爬网的数据可以完全打印在终端上,但不能完全以文本形式写入,python,python-3.x,text,web-crawler,Python,Python 3.x,Text,Web Crawler,我已经从url抓取了一些数据,它是否可以完美地显示在终端上 下面是我的代码(从url抓取电影名称): 以下是输出(在终端上抓取并完整显示的电影名称): 但当我试图将数据写入文本时,文本中只有一项 以下是在文本中编写文件的代码: 以下是代码的输出(文本中只有1项): 我的问题: 为什么文本中只写了1项,而我已经爬网了所有数据,并将它们打印在终端上 为什么文本中只写了1项,而我已经抓取了所有数据并在终端上打印了它们 因为你可能有类似的东西 movie_dict=html_dict['subjects

我已经从url抓取了一些数据,它是否可以完美地显示在终端上

下面是我的代码(从url抓取电影名称): 以下是输出(在终端上抓取并完整显示的电影名称): 但当我试图将数据写入文本时,文本中只有一项

以下是在文本中编写文件的代码: 以下是代码的输出(文本中只有1项): 我的问题: 为什么文本中只写了1项,而我已经爬网了所有数据,并将它们打印在终端上

为什么文本中只写了1项,而我已经抓取了所有数据并在终端上打印了它们

因为你可能有类似的东西

movie_dict=html_dict['subjects']
for i in movie_dict:
    movie_name=i['title']
    movie_rate=i['rate']
    print (movie_name)
    with open('douban_movie.txt','w',encoding='utf-8') as file:
        file.write(movie_name+'\n')
你最喜欢的时候应该有

with open('douban_movie.txt','w',encoding='utf-8') as file:
    movie_dict=html_dict['subjects']
    for i in movie_dict:
        movie_name=i['title']
        movie_rate=i['rate']
        print (movie_name)
        file.write(movie_name+'\n')
也就是说,在循环外打开文件写入一次,然后在循环内重复写入文件

    with open('douban_movie.txt','w',encoding='utf-8') as file:
        file.write(movie_name+'\n')
无敌破坏王2:大闹互联网
movie_dict=html_dict['subjects']
for i in movie_dict:
    movie_name=i['title']
    movie_rate=i['rate']
    print (movie_name)
    with open('douban_movie.txt','w',encoding='utf-8') as file:
        file.write(movie_name+'\n')
with open('douban_movie.txt','w',encoding='utf-8') as file:
    movie_dict=html_dict['subjects']
    for i in movie_dict:
        movie_name=i['title']
        movie_rate=i['rate']
        print (movie_name)
        file.write(movie_name+'\n')