栖' 2019-07-29 00:53 采纳率: 0%
浏览 1979
已采纳

python简单爬虫正常运行遍历,没有报错,但最后csv文件为什么只保存了一条信息

import requests
import json
import re
import csv

获取每个电影分类链接的函数

def get_movie_type():
url='https://movie.douban.com/chart'
resp=requests.get(url)
result=re.findall(r'(.*?)',resp.text)
return result

获取每种电影前100部:

def get_movie_rank(type_url):
type_url = 'https://movie.douban.com/j/chart/top_list?' + type_url[23:] + '&start=0&limit=100'
resp=requests.get(type_url)
return resp.text

储存成CSV格式 数据包括:电影名,类型,国家或地区,上映日期,评分,排行

def save(movie):
with open(r'C:\Users\Administrator\Desktop\python\豆瓣电影分类前100.csv', 'w', newline='', encoding='utf8') as f:
csv.writer(f).writerow(['类型','电影名称','地区','上映日期','评分','排行','地址'])
csv.writer(f).writerow(movie)

def run():
types_url=get_movie_type()
for url in types_url:
movie_type_name = url[1]
print('正在储存'+movie_type_name+'类型的电影')
type_url = url[0]
result=get_movie_rank(type_url)

    #json解析
    result=json.loads(result)

    #获取所需电影信息
    for massage in result:

        title=massage['title']
        regions=massage['regions'][0]
        release_date=massage['release_date']
        score=massage['score']
        rank = massage['rank']
        url = massage['url']
        movie = [movie_type_name, title, regions, release_date, score, rank, url]

        # 储存包含电影信息
        save(movie)
        print(movie_type_name + '的类型储存完毕!')

run()

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-07-29 09:09
    关注

    with open(r'C:\Users\Administrator\Desktop\python\豆瓣电影分类前100.csv', 'w', newline='', encoding='utf8') as f:
    这个w每次写入都把上次冲了。
    with open(file, 'a+')才是追加

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信购物商城购物车的所有功能以及购物车,和首页的搜索功能
  • ¥15 关于#Mybatis#的问题:怎么办重复数据如下"KSDM":37,"KSMC":"呼吸内科门诊","ksdm":37,"ksmc":"呼吸内科门诊"xml文件填写
  • ¥40 servlet的web程序部署出错
  • ¥50 activiti 新建流程系列问题
  • ¥50 为什么我版本升级之后运行速度变慢5倍??
  • ¥15 如何在gazebo中加载机械臂和机械手
  • ¥15 纯运放实现隔离采样方案设计
  • ¥20 easyconnect无法连接后缀带.com的网站,一直显示找不到服务器ip地址,但是带有数字的网站又是可以连接上的,如何解决
  • ¥15 电脑开机过商标后就直接这样,求解各位
  • ¥15 mysql , 用自己创建的本地主机和用户名 登录不上