爬虫数据导成csv及存入数据库

本文介绍了如何将爬虫获取的数据整理成csv文件,并存入Postgres数据库。首先,通过解析文本数据形成二维数组,然后利用Python的csv库将数据写入csv。针对可能出现的乱码问题,建议将csv文件转为ANSI编码再用Excel打开。此外,还提及了使用pgadmin图形界面操作数据库,以及计划学习在Python中直接创建数据库表并添加数据的方法。

有时对于爬虫得到的数据,需要对其进行整理,一是为了格式统一,二是用excel表格也可以打开。再就是把得到的数据放入数据库都是需要的。

首先来看导成csv:

我认为最重要的一点是,如何把文本数据取出来放入类似二维数组的字符串组来保存。关键就在于如何取。


可以观察到这些数据以此的顺序,因此:

        with open('info.txt','r') as file:
            while True:
                line=file.readline()
                if line=='':
                    break
                if len(line.split('\r')[0])==1:
                    continue
                print len(line.split('\n')[0])
                info.append(line.split('\n')[0])
        #         /r 和 /n 的区别?
        count=0
        for i in info:
            print "测试",i
            count=count+1
            print "数量",count
        data=[("1","2","3","4")]

        for i in range(0,count,4):
            str=(info[
### 将爬虫抓取的数据同时储到CSV文件和MySQL数据库 为了实现这一目标,可以按照如下方式编写 Python 代码。这段代码不仅展示了如何将数据CSV 文件,还说明了怎样将其存入 MySQL 数据库。 #### 首先需要入必要的来支持操作: ```python import mysql.connector import csv from datetime import datetime ``` #### 连接并初始化 MySQL 数据库 建立与 MySQL 的连接,并准备用于插入记录的 SQL 语句: ```python db_connection = mysql.connector.connect( host='localhost', user='root', # 用户名 password='password', # 密码 database='spider_db' # 使用的数据库名称 ) cursor = db_connection.cursor() create_table_query = """ CREATE TABLE IF NOT EXISTS articles ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), link TEXT, date DATE ); """ cursor.execute(create_table_query) ``` #### 准备要储的数据 这里模拟了一些简单的文章列表作为爬虫获取的结果: ```python data = [ ["Python教程", "https://example.com", "2024-10-19"], ["爬虫入门", "https://example2.com", "2024-10-18"] ] ``` #### 同时向 CSV 文件和 MySQL 插入数据 遍历 `data` 列表中的每一项,依次执行写入 CSV 和插入数据库的动作: ```python with open("articles.csv", mode="w", newline='', encoding="utf-8") as file: writer = csv.writer(file) writer.writerow(["标题", "链接", "日期"]) # 写入列头 insert_records = [] for item in data: title, link, date_str = item # 换日期格式以便于存入数据库 formatted_date = datetime.strptime(date_str, "%Y-%m-%d").date() # 添加到批量插入队列中 insert_records.append((title, link, formatted_date)) # 写入CSV文件 writer.writerow(item) # 执行批量插入命令 insert_sql = """INSERT INTO articles (title, link, date) VALUES (%s, %s, %s);""" cursor.executemany(insert_sql, insert_records) db_connection.commit() # 提交更改以确保它们被永久化 print(f"{len(insert_records)} 条记录功插入.") ``` 以上就是完整的解决方案[^1]。此方案利用了标准 `csv` 对象来进行 CSV 文件的操作;而对于 MySQL,则借助第三方模块 `mysql.connector` 完相应的增删改查功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值