zoukankan      html  css  js  c++  java
  • 数据抓取一

    数据抓取一

    一.今日任务

    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文件读写在网上有文件读写的方式,按照方法来参照着写
  • 相关阅读:
    PLC衔接新方式UcAsp.Opc
    dev barmanager 中的 add按钮出不来,无法创建菜单的问题解决
    一个或多个页边距被设置到也可打印的页面范围之外,处理方式
    bar设置全背景色
    PHP计算两个字符的相似程度similar_text
    PHP中双冒号::的用法
    百度站内搜索应该注意哪些方面?
    快给你的网站添加微信公众号吧!
    实例讲解网站前台界面开发流程
    百度富文本编辑器UEditor安装配置全过程
  • 原文地址:https://www.cnblogs.com/ningl666/p/13361782.html
Copyright © 2011-2022 走看看