• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

爬虫csv文件写入和读取

武飞扬头像
Fx_2003
帮助1

文章目录

前言大纲:

1、目的:爬取标题

2、代码如下 

 3、写入txt文本

 4、csv模块

       1、csv写入

    1)csv 写入列表

    2)写入字典

        2、csv读取

5、将标题写入csv文件:

总结

本文以一个爬虫小案例讲述怎么把爬取到的文本内容写入本地

有以下几种常用的方式:

1、写入txt文本

2、写入csv文件

3、写入sql(将在下篇博客讲述)

介绍了csv 模块


前言大纲:

通过一个爬虫小案例:爬取文章标题讲述怎么写入csv文件

1、目的:爬取标题

    虎扑 获取主页标题   url = 'https://bbs.hupu.com/'
 

学新通

通过审查元素F12 我们可以知道标题都在

span标签下的class="t-title"下

学新通

2、代码如下 

  1.  
    # -*- coding: utf-8 -*-
  2.  
    """
  3.  
    @File : _thread多线程.py
  4.  
    @author: FxDr
  5.  
    @Time : 2022/10/16 19:43
  6.  
    """
  7.  
     
  8.  
    from bs4 import BeautifulSoup
  9.  
    import requests
  10.  
     
  11.  
     
  12.  
    def hupu():
  13.  
    li = []
  14.  
    # 虎扑 获取主页标题
  15.  
    url = 'https://bbs.hupu.com/'
  16.  
    headers = {
  17.  
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42'
  18.  
    }
  19.  
    req = requests.get(url, headers=headers).content.decode('utf-8')
  20.  
    soup = BeautifulSoup(req, 'lxml')
  21.  
    # print(soup.prettify()) 美化输出
  22.  
    p = soup.find_all('span', class_='t-title')
  23.  
     
  24.  
    for each in p:
  25.  
    # print(each.text)
  26.  
    li1 = [each.text]
  27.  
    li.append(li1)
  28.  
    return li
  29.  
     
  30.  
     
  31.  
    print(hupu())
学新通

 输出:学新通

 3、写入txt文本

  1.  
    # -*- coding: utf-8 -*-
  2.  
    """
  3.  
    @File : threading多线程.py
  4.  
    @author: FxDr
  5.  
    @Time : 2022/10/16 20:01
  6.  
    """
  7.  
     
  8.  
    from bs4 import BeautifulSoup
  9.  
    import requests
  10.  
     
  11.  
     
  12.  
    def hupuDown():
  13.  
    # 虎扑 获取主页标题
  14.  
    url = 'https://bbs.hupu.com/history/'
  15.  
    headers = {
  16.  
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42'
  17.  
    }
  18.  
    req = requests.get(url, headers=headers).content.decode('utf-8')
  19.  
    soup = BeautifulSoup(req, 'lxml')
  20.  
    # print(soup.prettify())
  21.  
    p = soup.find_all('a', class_='p-title')
  22.  
    # print(p)
  23.  
    for each in p:
  24.  
    print(each.text)
  25.  
    with open('虎扑.txt', 'a ') as f:
  26.  
    f.writelines(each.text)
  27.  
    f.writelines('\n')
学新通

如下:

学新通

 4、csv模块

import csv

1、csv写入

1)csv 写入列表

一个小例子:

  •    writerow():单行写入,将一个列表全部写入csv的同一行
  •     writerows():多行写入,将一个二维列表的每一个列表写为一行
  1.  
    # 将数据写入csv文件 可以写入列表,再用writerow()方法把一个列表写入
  2.  
    import csv
  3.  
     
  4.  
    output = [12,'重生之鸡哥在世', '1000']
  5.  
    with open('fxx_books.csv', 'a ', encoding='utf-8') as f:
  6.  
    w = csv.writer(f)
  7.  
    w.writerow(output)

输出如下:

学新通

2)写入字典

  1.  
    # -*- coding: utf-8 -*-
  2.  
    """
  3.  
    @File : 02.py
  4.  
    @author: FxDr
  5.  
    @Time : 2022/11/01 20:05
  6.  
    """
  7.  
    import csv
  8.  
    # 写入字典
  9.  
    # 数据
  10.  
    person = [
  11.  
    {'name': 'Eric', 'age': 18, 'score': 99},
  12.  
    {'name': 'LiHua', 'age': 18, 'score': 66},
  13.  
    {'name': 'niCai', 'age': 17, 'score': 100},
  14.  
    ]
  15.  
    # 表头
  16.  
    header = ['name', 'age', 'score']
  17.  
     
  18.  
    with open('fxx_students.csv', 'w', encoding='utf-8', newline='') as f:
  19.  
    # 1.创建对象
  20.  
    dictWriter = csv.DictWriter(f, header)
  21.  
    # 2.写入表头
  22.  
    dictWriter.writeheader()
  23.  
    # 3.写入数据 writerows
  24.  
    dictWriter.writerows(person)
学新通

学新通

 2、csv读取

  1.  
    import csv
  2.  
    # 读取csv文件
  3.  
    with open('fxx_books.csv', 'r', encoding='utf-8') as f:
  4.  
    csv_reader = csv.reader(f)
  5.  
    for row in csv_reader:
  6.  
    print(row) # csv_reader把每一行转化为一个列表
  7.  
    # print(row[0]) # 列表的第一项

输出:

学新通

5、将标题写入csv文件:

代码如下:

  1.  
    # -*- coding: utf-8 -*-
  2.  
    """
  3.  
    @File : Down.py
  4.  
    @author: FxDr
  5.  
    @Time : 2022/11/01 19:42
  6.  
    """
  7.  
    from spider.hupu import Down
  8.  
     
  9.  
    # 将数据写入csv文件 可以写入列表,再用writerow()方法把一个列表写入
  10.  
    import csv
  11.  
     
  12.  
    output = Down.hupu()
  13.  
    print(type(output))
  14.  
    with open('fxx_hupu.csv', 'a ', encoding='utf-8') as f:
  15.  
    w = csv.writer(f)
  16.  
    '''
  17.  
    for each in output:
  18.  
    w.writerow(each)
  19.  
    '''
  20.  
    w.writerows(output)
  21.  
    # writerow():单行写入,将一个列表全部写入csv的同一行
  22.  
    # writerows():多行写入,将一个二维列表的每一个列表写为一行
学新通

 学新通

总结

本文以一个爬虫小案例讲述怎么把爬取到的文本内容写入本地

有以下几种常用的方式:

1、写入txt文本

2、写入csv文件

3、写入sql(将在下篇博客讲述)

csv 模块

通过这个案例,顺便介绍了以下csv模块

常用的几种函数方法有:

写入:

  •  writerow():单行写入,将一个列表全部写入csv的同一行
  •     writerows():多行写入,将一个二维列表的每一个列表写为一行

读取:

reader()

比如:

with open('fxx_books.csv', 'r', encoding='utf-8') as f:
    csv_reader = csv.reader(f)  # 列表类型 可以通过 for each in csv_reader:遍历

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhabkji
系列文章
更多 icon
同类精品
更多 icon
继续加载