Python自学笔记:Scrapy基础(详细)

创建项目与爬虫
1.创建项目:在项目所要存放的文件夹中打开cmd,输入scrapy startproject 项目名称
在这里插入图片描述
2.创建爬虫:进入项目所在路径后输入scrapy genspider 爬虫名字 “域名”
(注:爬虫名不能与项目名相同)
在这里插入图片描述
3.项目目录结构
在这里插入图片描述
items.py:用来存放爬虫爬取下来数据。
middlewares.py:用来存放各种中间件的文件。
pipelines.py:用来将items的模型存储到本地磁盘中。
settings.py:本爬虫的一些配置信息(比如请求头、多久发送一次请求、ip代理池等)。
scrapy.cfg:项目的配置文件。
spiders包:以后所有的爬虫,都是存放到这个里面。

4.基础设定
协议
在这里插入图片描述
请求头
在这里插入图片描述
执行指定爬虫(在cmd中启动 scrapy crawl 爬虫名 )
在这里插入图片描述
在这里插入图片描述
[注:打印类型后可以找到该属性所属的包:eg:该response类型为<class ‘scrapy.http.response.html.HtmlResponse’>,则可导入]
在这里插入图片描述
使项目在python文件中执行(不用在cmd中执行 )
在这里插入图片描述
在这里插入图片描述
cmdline.execute(“scrapy crawl qsbk_spider”.split())
==cmdline.execute([“scrapy”,‘crawl’,‘qsbk_spider’])
xpath获取文本:/text()
去掉上下行空格:strip()

将爬取的数据传递给pipelines处理
(通过yield将信息传递给engine再由其传递给pipelines)
在这里插入图片描述
在setting中激活piplilne,qsbk爬虫下载处理的优先级(数值越小优先级越高)
在这里插入图片描述
pipelines中的基础结构
在这里插入图片描述
* open_spider(self,spider):当爬虫被打开的时候执行。
* process_item(self,item,spider):当爬虫有item传过来的时候会被调用。
* close_spider(self,spider):当爬虫关闭的时候会被调用。

在items处固定好spride所爬取向pipelines传递的数据
在这里插入图片描述
item.py文件进行相应的修改
在这里插入图片描述item=QsbkItem()

将数据转换成字典 dict( )
[数据转换成字典才可以json格式进行储存]

  1. response是一个scrapy.http.response.html.HtmlResponse对象。可以执行xpathcss语法来提取数据。
  2. response提取出来的数据,是一个SelectorSelectorList对象。如果想要获取其中的字符串。那么应该执行getall或者get方法。
  3. getall方法:获取Selector中的所有文本。返回的是一个列表。
  4. get方法:获取的是Selector中的第一个文本。返回的是一个str类型。

pipelines中保存json类数据常用的两个类 (优化数据存储)(xml,csv等)
(JsonItemExporter, JsonLinesItemExporter)
JsonItemExporter:先将数据添加到内存中(不适合数据量过大的数据存储),最后统一写入(‘wb’)到磁盘中(存储的数据是一个满足json规则的数据)
在这里插入图片描述
JsonLinesItemExporterexport_item:将item存储到硬盘中,每一个字典是一行,整个文件不是一个满足json格式的文件。但是每次处理数据的时候就直接存储到了硬盘中,这样不会损耗内存,且数据较为安全
在这里插入图片描述
设置爬取等待时间
在这里插入图片描述
爬取多个页面(通过获取下一页的标签)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值