前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scrapy 框架(二)数据的持久化

Scrapy 框架(二)数据的持久化

作者头像
小麦苗DBA宝典
发布2019-09-29 16:30:13
4060
发布2019-09-29 16:30:13
举报

今天小婷儿给大家分享的是Scrapy 框架(二)数据的持久化。

Scrapy 框架(二)数据的持久化

scrapy数据的持久化(将数据保存到数据库)

一、建立项目

1、scrapy startproject dushu

2、进入项目

 cd dushu

  执行:scrapy genspider -t crawl read www.dushu.com

代码语言:javascript
复制
  查看:read.py
  class ReadSpider(CrawlSpider):
      name = 'read'
      allowed_domains = ['www.dushu.com']
      start_urls = ['https://www.dushu.com/book/1175.html']

注:项目更改了默认模板,使其具有递归性

3、模板CrawlSpider具有以下优点:

1)继承自scrapy.Spider;

2)CrawlSpider可以定义规则

在解析html内容的时候,可以根据链接规则提取出指定的链接,然后再向这些链接发送请求;

所以,如果有需要跟进链接的需求,意思就是爬取了网页之后,需要提取链接再次爬取,使用CrawlSpider是非常合适的;

3)模拟使用:

a: 正则用法:links1 = LinkExtractor(allow=r'list_23_\d+\.html')

b: xpath用法:links2 = LinkExtractor(restrict_xpaths=r'//div[@class="x"]')

c:css用法:links3 = LinkExtractor(restrict_css='.x')

4、更改模板后rules参数解释:

a:参数一 (allow=r'/book/1175_\d+.html') 匹配规则;

b: 参数二 callback='parse_item' ,数据回来之后调用多方法

c: 参数三,True,从新的页面中继续提取链接

注:False,当前页面中提取链接,当前页面start_urls

5、 修改start_urls

start_urls = ['https://www.dushu.com/book/1175.html']

  写 def parse_item(self, response)

6、items.py

7、pipelines.py(yield后会回到pipelines.py)

1)写def __init__(self): 和 def close_spider(self,spider):

2)连接mysql,保存数据

3)启动mysql (Navicat)

4) 连接数据库def process_item(self, item, spider)

5)setting(robots、USER_AGENT、ITEM_PIPELINES)

6)read.py(修改rules)

8、执行scrapy crawl read,将数据写入数据库

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、建立项目
    • 1、scrapy startproject dushu
      • 2、进入项目
        •  cd dushu
          • 3、模板CrawlSpider具有以下优点:
            • 1)继承自scrapy.Spider;
            • 2)CrawlSpider可以定义规则
            • 3)模拟使用:
          • 4、更改模板后rules参数解释:
            • 5、 修改start_urls
              •   写 def parse_item(self, response)
                • 6、items.py
              • 7、pipelines.py(yield后会回到pipelines.py)
                • 1)写def __init__(self): 和 def close_spider(self,spider):
                • 2)连接mysql,保存数据
                • 3)启动mysql (Navicat)
                • 4) 连接数据库def process_item(self, item, spider)
                • 5)setting(robots、USER_AGENT、ITEM_PIPELINES)
                • 6)read.py(修改rules)
              • 8、执行scrapy crawl read,将数据写入数据库
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档