美文网首页
Python爬虫(九)通过txt/Excel保存爬虫数据

Python爬虫(九)通过txt/Excel保存爬虫数据

作者: 咸甜怪 | 来源:发表于2019-06-13 20:32 被阅读0次

    通过前面的学习,你应该已经知道怎么提取到爬虫数据了。但是提取数据之后,我们应该讲数据保存起来,或者进一步应用起来,爬虫才有意义。爬虫最常用的数据保存方法有txt文件、Excel文件、数据库。在这里我主要讲解txt文件保存和Excel文件保存,对于数据库保存感兴趣的同学,可以再自行学习。

    txt文件保存

    该方法主要是以列表的形式将数据存储到.txt文件中,其核心代码为

    with open('save.txt', 'a', encoding='utf-8') as f:
        f.write()
        f.close()
    

    我们以上一小节Python爬虫(八)数据处理方法之Xpath提取到的书籍名字为例子,演示怎么将数据保存到txt文件中。在本例中,是通过for循环遍历字典元素实现的。将数据以列表的形式存储到txt文件中的具体代码如下:

    import requests
    from lxml import etree
    
    url1 = 'https://book.douban.com/tag/%E6%97%A5%E6%9C%AC%E6%96%87%E5%AD%A6?start=0&type=T/'
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
    response = requests.get(url1, headers=headers)
    html_str = response.content.decode()
    html = etree.HTML(html_str)
    #创建xpath列表
    html_name = html.xpath("//ul[@class='subject-list']/li")
    for li in html_name:
        item = {}
        #获取到每一个li下的书籍名字,并去除多余的\n
        item['name'] = li.xpath('./div[2]/h2/a/text()')[0].replace("\\n", " ").strip()
        with open('save_bookname.txt', 'a', encoding='utf-8') as f:
            f.write(json.dumps(item, ensure_ascii=False))
            #每保存完一行就换行
            f.write('\n')
    
    输出结果如下: save_bookname_txt文件.png
    Excel文件保存

    将爬取到的数据存储到Excel文件中的做法和将数据存储到txt文件中类似,但是需要用到python的xlwt库,其核心代码为

    #1.创建book,sheet对象
    book=xlwt.Workbook('encodeing=utf-8')
    sheet=book.add_sheet('表格名')
    #2.创建表头
    sheet.write(行,列,值)
    #3.写入
    sheet.write(行,列, 值)
    #4.保存
    book.save('文件名.xls')
    

    我们仍然以上一小节Python爬虫(八)数据处理方法之Xpath提取到的书籍名字为例子,演示怎么将数据保存到Excel文件中。在本例中,先通过for循环将所有的数据存取到列表中,再通过for循环遍历列表元素保存到Excel文件中。具体代码如下:

    import requests
    from lxml import etree
    
    url1 = 'https://book.douban.com/tag/%E6%97%A5%E6%9C%AC%E6%96%87%E5%AD%A6?start=0&type=T/'
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
    response = requests.get(url1, headers=headers)
    html_str = response.content.decode()
    html = etree.HTML(html_str)
    #创建xpath列表
    html_name = html.xpath("//ul[@class='subject-list']/li")
    for li in html_name:
        item = {}
        #获取到每一个li下的数据名字,并去除多余的\n
        item['name{}'] = li.xpath('./div[2]/h2/a/text()')[0].replace("\\n", " ").strip()
        namelist.append(item)
    book = xlwt.Workbook(encoding='utf-8')
    sheet = book.add_sheet('bookname')
    sheet.write(0, 0, '书名')
    i = 1
    for name_dict in namelist:
        #写入书名
        sheet.write(i, 0, name_dict['name'])
        #每写完一行数据,下一次换到下一行
        i += 1
    book.save('E:\ClubKingdee\save_bookname.xls')
    
    输出结果如下: save_bookname_Excel文件.png

    相关文章

      网友评论

          本文标题:Python爬虫(九)通过txt/Excel保存爬虫数据

          本文链接:https://www.haomeiwen.com/subject/qjrefctx.html