欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【Python3爬虫】Scrapy+MongoDB+MySQL

程序员文章站 2023-11-30 09:15:46
分享一下两个小爬虫,都是用Scrapy写的,一个用MongoDB保存,另一个用MySQL保存。 一、Scrapy+MongoDB 主要代码: 在settings.py中添加如下代码: 在pipelines.py中添加如下代码: 二、Scrapy+MySQL 前提:在MySQL数据库中建一个表来保存数 ......

 分享一下两个小爬虫,都是用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 pymongo
from 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 pymysql
from 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,就会出现如下方框;

【Python3爬虫】Scrapy+MongoDB+MySQL

然后点击“+”按钮,选择data source,然后选择mysql;

【Python3爬虫】Scrapy+MongoDB+MySQL

在弹出的对话框中输入以下信息,包括数据表名、用户名和密码(密码是自动隐藏的)。

【Python3爬虫】Scrapy+MongoDB+MySQL

添加信息无误后点击“ok”,在pycharm中连接mysql数据库就完成了,结果如下图。

【Python3爬虫】Scrapy+MongoDB+MySQL

(注:在链接mysql数据库的时候记得先打开mysql服务。)

 

 最后附上源码地址:https://github.com/qaq112233/douban