分享一下两个小爬虫,都是用Scrapy写的,一个用MongoDB保存,另一个用MySQL保存。
一、Scrapy+MongoDB
主要代码:
在settings.py中添加如下代码:
MONGODB_HOST = "127.0.0.1" # 本机ip地址MONGODB_PORT = 27017 # 端口号MONGODB_DB = "DouBan" # 数据库名MONGODB_COL = "DouBanDuShu" # 集合名
在pipelines.py中添加如下代码:
import pymongofrom DouBanDuShu.settings import MONGODB_DB, MONGODB_PORT, MONGODB_HOST, MONGODB_COL class DoubandushuPipeline(object): def __init__(self): client = pymongo.MongoClient(host=MONGODB_HOST, port=MONGODB_PORT) # 连接MongoDB数据库 db = client[MONGODB_DB] # 创建一个数据库 self.post = db[MONGODB_COL] # 创建一个集合 def process_item(self, item, spider): data = dict(item) self.post.insert(data) # 把数据存储到数据库中 return item
二、Scrapy+MySQL
前提:在MySQL数据库中建一个表来保存数据。
create table doubandianying(
name varchar(100) not null,
human varchar(100) not null,
score varchar(10) not null,
info varchar(200) not null
);
主要代码:
在settings.py中添加如下代码:
MYSQL_HOST = "localhost" # 主机MYSQL_PORT = 3306 # 端口号MYSQL_DB = "DouBan" # 数据库名MYSQL_USER = 用户名MYSQL_PSD = 密码
在pipelines.py中添加如下代码:
import pymysqlfrom DouBanDianYing.settings import MYSQL_DB, MYSQL_HOST, MYSQL_PSD, MYSQL_PORT, MYSQL_USER class DoubandianyingPipeline(object): def __init__(self): self.conn = pymysql.connect(host=MYSQL_HOST, port=MYSQL_PORT, db=MYSQL_DB, user=MYSQL_USER, password=MYSQL_PSD) # 连接MySQL数据库 self.cursor = self.conn.cursor() # 创建游标 def process_item(self, item, spider): try: self.cursor.execute("insert into doubandianying(name,human,score,info) values (%s,%s,%s,%s)", (item[‘name‘], item[‘human‘], item[‘score‘], item[‘info‘])) # 向数据表中插入数据 self.conn.commit() except Exception as error: print(error) return item
三、关于在Pycharm中连接MySQL数据库
在Pycharm中点击右侧的Database,就会出现如下方框;
然后点击“+”按钮,选择Data Source,然后选择MySQL;
在弹出的对话框中输入以下信息,包括数据表名、用户名和密码(密码是自动隐藏的)。
添加信息无误后点击“OK”,在Pycharm中连接MySQL数据库就完成了,结果如下图。
(注:在链接MySQL数据库的时候记得先打开MySQL服务。)
最后附上源码地址:https://github.com/QAQ112233/DouBan
原文地址:https://www.cnblogs.com/TM0831/p/9684875.html
时间: 2024-10-06 15:26:35