爬虫之 scrapy 框架总结

写在前面的话: 最近重新学了一下scrapy框架,之前没学好,现在总结一下…以便以后重装不需要重新找资料

一. 安装

需要三个库 lxml, twist, pywin32 一般前两个都有

  • pip install pypiwin32 (有whl文件)

如果有问题输入下面这句

  • pip install -I cryptography

二. 文件类型

1. items.py 存放数据模型

三个方法最常用

  • open_spider(self, spider): 爬虫打开的时候执行
  • process_item(self, item, spider): 当爬虫有item传过来的时候会被调用
  • close_spider(self, spider): 爬虫关闭的时候执行

注意激活pipline,在 setting.py 中设置

2. middlewares.py 存放各种中间件的文件
3. pipelines.py 存储
4. setting.py 配置信息
  1. ROBOTSTXT_OBEY = False 肯定不服从呗
  2. headers 添加 User-Agent
  3. ITEM_PIPLINES

三. 流程

  • scrapy startproject name 开始一个项目
  • cd name 切换到项目文件夹
  • scrapy genspider filename “域名”

response 是一个 HTMLResponse 对象,可以用 xpath 提取数据,提取出来需要用 get()getall() 获取用 yield 返回,或者用 列表存储 再返回

四. 返回对象

1. JsonItemExporter

每次把数据添加到内存中,最后统一写到磁盘里。最后存储的是一个列表,满足json规则,可以直接转换为DataFrame类型进行数据分析,便于操作。劣势在于数据量越大,内存消耗越严重。

2. JsonLinesItemExporter

每次调用 export_item() 时存储item到硬盘,优势在于处理数据直接存储到硬盘,不占用内存,数据也较安全。劣势在于每个字典是一行,文件不满足json规则。

五. CrawlSpider

命令:scrapy startproject -t crawl name

需要使用 RuleLinkExtracter。决定爬虫的根本设置

  1. allow:设置规则的方法,限制想要的url, 用正则表达
  2. follow:爬取当前页面,满足allow,且设置为True则继续爬取, 否则设置为False
  3. callback:url对应页面知识为了获取更多url,并不需要具体数据
from scrapy.spiders import CrawlSpider

继承的是 CrawlSpider 这个类
可以方便的爬取正则规定的url。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值