专栏首页小麦苗的DB宝专栏Scrapy 框架(二)数据的持久化

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

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

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

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

一、建立项目

1、scrapy startproject dushu

2、进入项目

 cd dushu

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

  查看: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,将数据写入数据库

本文分享自微信公众号 - DB宝(xiaomaimiaolhr),作者:小婷儿best

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【DB笔试面试542】简述Oracle中的密码文件。

    Oracle密码文件的作用主要是进行SYSDBA和SYSOPER权限的身份认证。密码文件存放着被授予SYSDBA或SYSOPER权限的用户的用户名和密码。它是一...

    小麦苗DBA宝典
  • 【DB笔试面试440】下列哪种完整性中,将每一条记录定义为表中的惟一实体,即不能重复()

    关系的约束条件也称为关系的数据完整性规则,是对关系的一些限制和规定,包括实体完整性、参照完整性和用户定义完整性。实体完整性:关系模型对应的是现实世界的数据实体,...

    小麦苗DBA宝典
  • 【DB笔试面试630】在Oracle中,怎样收集表的统计信息?怎样收集分区表的统计信息?

    主要采用DBMS_STATS.GATHER_TABLE_STATS包进行统计信息的收集,如下所示:

    小麦苗DBA宝典
  • 神经网络反向传播梯度计算数学原理

    [神经网络]反向传播梯度计算数学原理 1 文章概述 本文通过一段来自于Pytorch官方的warm-up的例子:使用numpy来实现一个简单的神经网络。使用基本...

    用户1170933
  • 2018-09-12vuejs类商城app项目

    Mr. 柳上原
  • Linux下Android开发环境搭建的操作方法

    想要在Linux下搭建Android开发环境或者其他开发环境的同学可以一起讨论哦!

    砸漏
  • 物联网技术如何帮助新兴的踏板车共享行业

    了解微型交通公司如何利用物联网解决政府法规,与城市共享数据以及加强良好的踏板车驾驶行为。

    用户4122690
  • 甲骨文MICROS系统再曝漏洞 POS终端网络安全谁买单?

    “用指尖改变世界” ? 关于POS终端的安全问题并不是什么新鲜事!在最近的几年里,有许多针对POS终端的黑客攻击活动或者安全漏洞问题被报道。 考虑到此类设备与个...

    企鹅号小编
  • MySQL事务隔离级别和MVCC

    MySQL是一个服务器/客户端架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话(Session)...

    南风
  • mysql的事物隔离级别详解

    MySQL是一个服务器/客户端架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话(Session)...

    挑战者

扫码关注云+社区

领取腾讯云代金券