数据抓取一
一.今日任务
- 将数据文件 spider.log根据要求转存为 ans0201.csv
二.主要内容
- 任务分析以及实现方式
根据要求,我们需要取出spider.log文件中的相关字段,使用Python中的读取文件,每行数据都有相同的规律,按行读取,取出相应字段,然后创建csv文件,之后将读取的文件按要求写入csv
- 使用语言工具 Python
模块 os
- 主要源码
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)
三.遇到问题
- 文件数据需要进行筛选
- 筛选过的数据需要按规则进行过滤
- Csv文件读写
四.解决方式
- 关于文件数据的问题,刚开始没看明白,后来注意到题目中的链接是固定的,根据链接可以筛选出所需要的网页收集的数据
- 关于数据过滤,第一是每一行的第一个数据只需要名字,第二是票房的数据删除票房文字
- Csv文件读写在网上有文件读写的方式,按照方法来参照着写