爬虫--初体验(保存获取结果)

    在上一篇文章里面,我们简单地述说了爬虫所需要的包、其作用以及用法和爬虫的粗略步骤。

接下来我将介绍如何将获取下来的数据保存起来。

获取豆瓣排行榜(一部分)的代码如下:

import requests
import re

url = 'https://movie.douban.com/top250'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.7062 SLBChan/25 "}
resp = requests.get(url, headers=headers)

page_content = resp.text            # 拿到网页源代码

# 下面开始解析数据

obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)</span>.*?<p class="">.*?<br>('
                 r'?P<year>.*?)&n.*?</p>.*?<span class="rating_num" property="v:average">(?P<evaluate>.*?)'
                 r'</span>.*?<span>(?P<number>.*?)人评价</span>', re.S)

result = obj.finditer(page_content)

获取到的我们需要的数据已经保存在result这个变量里面了,接下来我们需要对result操作。

f = open('data.csv', mode='w')
csvwriter = csv.writer(f)
for i in result:
    # print("年份是:", i.group('year').strip(), "电影名字是:", i.group("name"),
    #       "评分是:", i.group('evaluate'), '评价人数是:', i.group('number'))     # .strip是消除年份前面的一大堆空白
    dic = i.groupdict()
    dic['year'] = dic['year'].strip()
    csvwriter.writerow(dic.values())

f.close()

open()是Python自带的用于对文件操作的的函数,它有两个参数,分别是:

    1.路径 + 文件名           如果只写文件名的话默认保存路径是当前工作目录

    2.w代表的是write,写入。

然后就要导入csv包对open的返回进行处理,最后在工作目录下生成data.csv文件

         

 内容如下:

肖申克的救赎,1994,9.7,2689310
霸王别姬,1993,9.6,1994606
阿甘正传,1994,9.5,2019235
泰坦尼克号,1997,9.4,1978515
这个杀手不太冷,1994,9.4,2162655
美丽人生,1997,9.6,1239720
千与千寻,2001,9.4,2095528
辛德勒的名单,1993,9.6,1034334
盗梦空间,2010,9.4,1932074
星际穿越,2014,9.4,1635065
忠犬八公的故事,2009,9.4,1318335
楚门的世界,1998,9.3,1554028
海上钢琴师,1998,9.3,1573551
三傻大闹宝莱坞,2009,9.2,1749855
机器人总动员,2008,9.3,1237110
放牛班的春天,2004,9.3,1220386
无间道,2002,9.3,1251973
疯狂动物城,2016,9.2,1776647
大话西游之大圣娶亲,1995,9.2,1435542
熔炉,2011,9.3,873741
控方证人,1957,9.6,486899
教父,1972,9.3,894989
当幸福来敲门,2006,9.2,1425332
触不可及,2011,9.3,1011178
怦然心动,2010,9.1,1713030
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值