说明
- github地址:https://github.com/lawlite19/PythonCrawler-Scrapy-Mysql-File-Template
使用scrapy爬虫框架将数据保存Mysql数据库和文件中
settings.py
修改Mysql的配置信息
1234567#Mysql数据库的配置信息MYSQL_HOST = '127.0.0.1'MYSQL_DBNAME = 'testdb' #数据库名字,请修改MYSQL_USER = 'root' #数据库账号,请修改MYSQL_PASSWD = '123456' #数据库密码,请修改MYSQL_PORT = 3306 #数据库端口,在dbhelper中使用指定pipelines
|
|
items.py
- 声明需要格式化处理的字段
|
|
pipelines.py
一、保存到数据库的类WebcrawlerScrapyPipeline
(在settings中声明)
- 定义一个类方法
from_settings
,得到settings中的Mysql数据库配置信息,得到数据库连接池dbpool
|
|
__init__
中会得到连接池dbpool
|
|
process_item
方法是pipeline默认调用的,进行数据库操作
|
|
- 插入数据库方法
_conditional_insert
|
|
- 错误处理方法
_handle_error
|
|
二、保存到文件中的类JsonWithEncodingPipeline
(在settings中声明)
- 保存为json格式的文件,比较简单,代码如下
|
|
dbhelper.py
- 自己实现的操作Mysql数据库的类
- init方法,获取settings配置文件中的信息
|
|
- 连接到Mysql
|
|
- 连接到settings配置文件中的数据库名(MYSQL_DBNAME)
|
|
- 创建数据库(settings文件中配置的数据库名)
|
|
- 还有一些数据库操作方法传入sql语句和参数即可(具体看代码)
实现具体的爬虫.py(即模板中的pictureSpider_demo.py
文件)
- 继承
scrapy.spiders.Spider
类 - 声明三个属性
|
|
- 实现
parse
方法,该函数名不能改变,因为Scrapy源码中默认callback函数的函数名就是parse
|
|
- 返回item
|
|
测试
- 测试DBHelper
创建testdb数据库和testtable表
- 测试爬虫
- 在D盘建立文件夹pics; 图片自动保存到该文件夹中。
scrapy crawl webCrawler_scrapy
运行爬虫后会将爬取得图片保存到本地,并且将name和url保存到数据库中
- 本文链接: http://lawlite.me/2016/10/09/Python爬虫-Scrapy/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议 。转载请注明出处!