scrap 保存数据到数据库
来源:互联网 发布:three.js 游戏 编辑:程序博客网 时间:2024/05/16 00:53
1 使用命令创建savedb 工程 : scrapy startproject savedb
然后到savedb目录上查看目录结构、如下:
--spiders
__init__.py
items.py
__init__.py
pipelines.py
settings.py
2确认过目录结构没有问题后编写自己的spider
# -*- coding:utf-8 -*-from scrapy.spider import BaseSpiderfrom scrapy.selector.lxmlsel import HtmlXPathSelectorfrom scrapy.item import Item, Fieldclass SavedbItem(Item): # define the fields for your item here like: # name = Field() title =Field() link =Field() class bbsSpider(BaseSpider): name ='boat' allow_domains=["http://book.douban.com/tag/编程?type=S"] start_urls = ["http://book.douban.com/tag/编程?type=S"] def parse(self,response): hxs = HtmlXPathSelector(response) items = [] item = SavedbItem() item['title']=hxs.select('//ul/li[position()>0]/div[2]/h2/a/@title').extract() item['link']=hxs.select('//ul/li[position()>0]/div[2]/h2/a/@href').extract() items.append(item) return items此处我把item类也放到同一文件中,保存文件到savedb.py。
3编写保存到数据库的pipelines
#-*- coding:utf-8 -*-import sysimport MySQLdbimport hashlibfrom scrapy.exceptions import DropItemfrom scrapy.http import Requestclass MySqlStorePipeline(object): def __init__(self): self.conn = MySQLdb.connect(user='jbpm', passwd ='jbpm', db='test', host='localhost', charset="utf8", use_unicode=True) self.cursor = self.conn.cursor() def process_item(self, item, spider): try: if item.get('title'): for i in range(len(item['title'])): self.cursor.execute("INSERT INTO book (title, link) VALUES (%s, %s)",(item['title'][i], item['link'][i])) self.conn.commit() except MySQLdb.Error, e: print "Error %d: %s" % (e.args[0], e.args[1]) return item
保存文件到dbpipelines.py
4修改settings.py文件
加入此配置
ITEM_PIPELINES = ['savedb.dbpipelines.MySqlStorePipeline']5确认使用的数据库表与【3】中配置一致
6执行scrapy crawl boat就可以实现了
参考文章:http://blog.sina.com.cn/s/blog_6a1e0bf301019yzh.html,由于原文章我没有运行成功,查看其它文章后更改运行成功。故将此记录下来。
以供参考。如有问题请随时指摘。
0 0
- scrap 保存数据到数据库
- Android 保存数据到数据库
- 保存DataGrid数据到数据库
- 保存DataGrid数据到数据库
- 安卓训练-开始-保存数据-保存数据到数据库
- extjs3中RowEditor保存数据到数据库
- hibernate save没有保存数据到数据库
- hibernate save没有保存数据到数据库
- 海量文本数据保存到数据库思路
- 读取Excel数据,保存到数据库
- 50万条数据保存到数据库
- Python 将数据库数据保存到txt
- python爬取拉勾网数据保存到mysql数据库
- 从网络请求数据保存到数据库。
- JDBC保存EXCEL数据到数据库(3.POI保存Excel数据到数据库)
- 如何将Excel和xml文件数据保存到数据库
- 保存xml数据到数据库的程序实现
- 无数据表映射的DataSet数据保存到数据库
- 类对象内存布局,虚函数,虚拟继承和多重继承的实现
- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
- iOS申请真机调试证书-图文详解
- 'release' is unavailable: not available in automatic reference counting mode解决方案
- 在真机和模拟器上进行调试
- scrap 保存数据到数据库
- Uml 9种图 之 行为描述 之活动图和状态图
- Realms Of Joy - Time Of Light.
- Tomcat的设置3——设置虚拟主机
- 【SSH实践笔记】-搭建SSH环境
- MySql 1045异常
- 在线求F4V格式播放器代码
- 第三章 数据链路层 补充 共享式以太网和交换式以太网
- DBMS_OUTPUT