600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python爬虫爬取豆瓣电影排行榜 并写进csv文件 可视化数据分析

python爬虫爬取豆瓣电影排行榜 并写进csv文件 可视化数据分析

时间:2019-09-03 13:20:30

相关推荐

python爬虫爬取豆瓣电影排行榜 并写进csv文件 可视化数据分析

#1、爬取内容,写进csv文件import requestsimport reimport csv#豆瓣电影排行榜,写进csv文件url = "/top250?start=25"#start确定每次起始位置,每次取25个headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"}res = requests.get(url,headers=headers)page_content=res.text#.*?表示懒惰匹配,加上括号表示要取匹配的内容,?P<name>表示根据此标记获取匹配的内容,使用下面group时候用#正则预编译obj = pile(r'<li>.*?<span class="title">(?P<name>.*?)</span>.*?<br>(?P<year>.*?)&nbsp;'r'.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>'r'.*?<span>(?P<coment>.*?)人评价</span>',re.S)result = obj.finditer(page_content) #生成的内容是个迭代器f = open("data.csv","a+",encoding="utf-8")csvwriter = csv.writer(f)for it in result:# print(it.group('name')) #对应?P<name>,可以用过name标记取到匹配的内容# print(it.group('year').strip())#处理年份前面的空格# print(it.group('score'))# print(it.group('coment'))dic = it.groupdict() #把数据装进字典dic['year'] = dic['year'].strip()csvwriter.writerow(dic.values())print("over")

#2、可视化,取电影和评分import csvfrom matplotlib import pyplotpyplot.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签f = open("data.csv","r",encoding="utf-8")csvReader = csv.reader(f)name,score,year = [],[],[]for row in csvReader:name.append(row[0])year.append(row[1])score.append(row[2])header_row = next(csvReader)pyplot.plot(name,score)pyplot.title("电影排行榜")pyplot.xlabel("电影")pyplot.ylabel("评分")pyplot.xticks(rotation=90)#控制横坐标的方向pyplot.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。