• 数据抓取一


    数据抓取一

    一.今日任务

    1. 将数据文件 spider.log根据要求转存为 ans0201.csv

    二.主要内容

    1. 任务分析以及实现方式

    根据要求,我们需要取出spider.log文件中的相关字段,使用Python中的读取文件,每行数据都有相同的规律,按行读取,取出相应字段,然后创建csv文件,之后将读取的文件按要求写入csv

    1. 使用语言工具  Python

    模块  os

    1. 主要源码

    import csv
    import codecs
    list = []
    listCsv = []
    def readLog():   #按行读取数据文件,如果链接是 movie,则是我们需要的数据
        list = []
        with open(r"C:\Users\liu\Desktop\arg\task0201\spider.log", "r", encoding="utf-8") as file:
            s = file.readlines()
            for i in s:
                str = i.split(",")
                if str[1].startswith(r"http://www.movie.com/"):
                    list.append(i)

        return list

    def anyData(list):        #去除多余的数据,拿到需要的电影名,上映时间等
        listCsv = []
        for abc in list:
            str = abc.split(";")

            movieName = str[0].split(",")[2]
            loadDate = str[1]
            uploadDate = str[2]
            pay = str[7][5:]
            tuple = (movieName, loadDate, uploadDate, pay)
            listCsv.append(tuple)

        return listCsv


    def writeCsv(list):       #写入csv文件
        f = codecs.open('ans0201.csv', 'w', 'utf-8')
        writer = csv.writer(f)
        for i in list:
            writer.writerow(i)
        f.close()

    if __name__ == "__main__":

        list = anyData(readLog())
        print(list)
        writeCsv(list)

     

     

    三.遇到问题

    1. 文件数据需要进行筛选
    2. 筛选过的数据需要按规则进行过滤
    3. Csv文件读写

    四.解决方式

      1. 关于文件数据的问题,刚开始没看明白,后来注意到题目中的链接是固定的,根据链接可以筛选出所需要的网页收集的数据
      2. 关于数据过滤,第一是每一行的第一个数据只需要名字,第二是票房的数据删除票房文字
      3. Csv文件读写在网上有文件读写的方式,按照方法来参照着写
  • 相关阅读:
    ThinkPHP讲解(一)框架基础
    smarty简单介绍
    留言板
    文件系统处理
    文件上传(带有预览模式)
    文件上传(无预览模式版)
    注册、登陆、审核练习
    session讲解(二)——商城购物车练习
    session讲解(一)——登录网页练习
    P6216 回文匹配
  • 原文地址:https://www.cnblogs.com/ningl666/p/13361782.html
Copyright © 2020-2023  润新知