Spider学习笔记(四):将爬取数据存入数据库

Python MySQL 数据批量插入示例
本文介绍了一个使用 Python 的 pymysql 库将文本文件中的数据批量插入 MySQL 数据库的示例。通过读取 tencent.txt 文件中的每一条记录,并将其转换为可执行 SQL 语句的形式,最终实现数据的批量导入。
import pymysql
conn = pymysql.connect(host='127.0.0.1',user='root',password='123456',
                       database='world',port=3306,charset='utf8')

#游标
cur = conn.cursor()

#读取
with open('tencent.txt','r',errors='ignore',encoding='utf-8') as f :
    jobList = f.readlines()
    for job in jobList:
        job = eval(job)
        sql = "INSERT INTO tencent(jobname,joburl,jobIofo,jobcompany,jobmoney,jobtime)VALUES " \
              "(%r,%r,%r,%r,%r,%r)" % (job[0], job[1], job[2], job[3], job[4], job[5])
        print(job)
        print(sql)
        cur.execute(sql)
        conn.commit()
cur.close()
conn.close()

 

第1关:Scrapy是一个强大的Python爬虫框架,它能够自动化抓取网页数据并整理成结构化的信息。如果你想将爬取数据存储到MongoDB数据库中,你可以按照以下步骤操作: 1. **安装依赖**: - 安装Scrapy本身:`pip install scrapy` - 安装Scrapy-MongoDB适配器:`pip install scrapy-mongodb` 2. **创建Scrapy项目**: 使用命令行创建一个新的Scrapy项目:`scrapy startproject my_crawler` 3. **配置settings.py**: 在项目的`settings.py`文件中,添加MongoDB的连接设置: ```python MONGO_URI = 'mongodb://localhost:27017/mydatabase' ITEM_PIPELINES = {'my_crawler.pipelines.MongoDBPipeline': 300} ``` 4. **编写管道(Pipeline)**: 创建一个名为`MongoDBPipeline.py`的文件,这是用于处理数据并将其保存到MongoDB的地方。这里你会使用Scrapy的Item Pipeline机制,如示例所示: ```python from pymongo import MongoClient from scrapy.item import Item, Field class MyItem(Item): # 定义你要存储在MongoDB中的字段 class MongoDBPipeline: def __init__(self): self.client = MongoClient(MONGO_URI) self.collection = self.client['mydatabase']['mycollection'] def process_item(self, item, spider): self.collection.insert_one(dict(item)) return item ``` 5. **定义Spider**: 在spiders目录下,创建一个Spider,比如`myspider.py`,并在其中定义下载和解析规则。采集到的数据会自动通过Pipeline传入MongoDB。 6. **运行爬虫**: 最后,在命令行运行你的爬虫:`scrapy crawl myspider` 完成上述步骤后,Scrapy会在每次请求成功后将数据存储到指定的MongoDB集合中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值