配置MySql
关于MySQL在Ubuntu的Pycharm上的配置,可以参考这篇文章中的第三部分
如果上面的步骤处理完毕后找不到你新建的数据库, 可以参照下图配置
勾选要显示的Schemas(数据库集合)
数据存储需要用到pymysql模块, 在File->Settings中找到如图的设置页面,点击加号搜索pymysql并安装
如何存储
在开始考虑如何存储之前, 我们需要考虑一个问题, 数据存储应该是什么时候要做的事.
假设你已经了解过Scrapy框架, 下面是来自官网对item pipeline的典型应用
清理数据
验证爬取的数据(检查item包含某些字段)
查重(并丢弃)
将爬取结果保存到数据库中
我们要实现的数据存储, 先来试一试能否成功吧
# 你可以参考以下代码编写自己的pipeline
import pymysql
class jobCrawlerPipeline(object):
def process_item(self, item, spider):
'''
将爬取的信息保存到mysql
:param item:
:param spider:
:return: item
'''
# Get data from item
job_name = item['job_name']
company = item['company']
address = item['address']
salary = item['salary']
time = item['time']
# Connecting with local database, change the value if not the same
db = pymysql.connect(
host='localhost',
user='root',
passwd='1320',
db='scrapyDB',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor)
try:
# open the cursor
cursor = db.cursor()
sql = 'INSERT INTO tb_job(job_name,company,address,salary,time)' \
'VALUES ("%s", "%s", "%s", "%s", "%s")' % (job_name,company,address,salary,time)
# execute the sql
cursor.execute(sql)
db.commit()
finally:
# close the connection
db.close()
return item
爬虫尚未结束, 但是通过终端, 我们知道该停下爬虫了.
爬取中...
存储在MySQL的信息
重新回到爬虫项目的思路
思考整个