上个博客写了:  Scrapy的概念以及Scrapy的详细工作流程 https://blog.csdn.net/wei18791957243/article/details/86154068

1.scrapy的安装  pip install scrapy

 2.创建Scarpy项目:

   在cmd中进入到想要创建Scrapy项目的路径下(最好在已经创建好的pycharm的工程路径下,就不用导入Python编译器等):    输入命令创建:scrapy startproject scrapy的项目名称

  

创建之后,可以在pycharm中查看已经创建了什么,一个

items.py  可以预先定义好爬取那些字段

middlewares.py  : 中间键

pipelines.py:  管道  , 进行数据的处理以及保存

settings.py  :  整个项目的设置

spiders文件夹;  创建好的爬虫,创建好是空的

3.生成一个爬虫   

   首先cd 创建的scrapy的项目名

   然后  scrapy  genspider   爬虫名   域名(即爬取的范围)

  

然后进入到pycharm中查看生成的东西:

4.然后就可以写爬虫了,  这是一个专门测试scrapy的爬虫网站 :http://quotes.toscrape.com/  里面是一些名言名句

在刚才创建好的爬虫名字的py文件里面写。

# -*- coding: utf-8 -*-
import scrapyclass ScrapetestSpider(scrapy.Spider):name = 'scrapeTest'  # 爬虫名'''允许爬取的范围'''allowed_domains = ['quotes.toscrape.com']'''最开始请求的url地址'''start_urls = ['http://quotes.toscrape.com/']def parse(self, response):"""处理start_url地址对应的响应"""# 爬取页面上的名言ret1 = response.xpath("//span[@class='text']//text()")print(ret1)

然后打印出这个名言,

5.  启动爬虫的框架:

首先cmd中进入到你刚才创建的项目路径下。

 输入命令: scrapy crawl 爬虫名

(1)会打印出很多的东西,包括日志等等,

(2)看着有点乱,我们可以在settings.py加入下面设置

LOG_LEVEL = "WARNING"

然后在执行命令就可以了  : scrapy crawl 爬虫名

可以看到爬取的数据都在一个列表当中,列表当中的每个元素是一个Selector对象,

(3). 直接取出当中的数据  extract()方法,可以在代码中这样写

ret1 = response.xpath("//span[@class='text']//text()").extract()

然后在执行启动框架,运行命令,可以看到数据就取出来了 

有关取值:

当使用extrat_first()的时候,如果xpath写错的话,取值的会是一个空值,None

6. pipelines管道的使用,

首先要在pipelines里面开启  ,在settings.py里面把这个注释去掉就行

是一个字典, 键代表位置,值代表距离引擎的远近,即权重

对值的解释:  我们可以定义多个pipeline,数据会先进行一个pipeline再进行一个pipeline,进入的pipeline的先后顺序就可以通过值来指定。值越小会先执行

爬虫名字.py:

# -*- coding: utf-8 -*-
import scrapyclass ScrapetestSpider(scrapy.Spider):name = 'scrapeTest'  # 爬虫名'''允许爬取的范围'''allowed_domains = ['quotes.toscrape.com']'''最开始请求的url地址'''start_urls = ['http://quotes.toscrape.com/']def parse(self, response):"""处理start_url地址对应的响应"""# 爬取页面上的名言text = response.xpath("//span[@class='text']//text()").extract()# 爬取页面上的作者aut = response.xpath("//small[@class='author']//text()").extract()for li in range(len(text)):item = {}item["author"] = aut[li]item["text"] = text[li]yield item

pipelines.py:
# -*- coding: utf-8 -*-# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.htmlimport json
class MyspiderPipeline(object):def process_item(self, item, spider):with open("text.txt",'a') as f:f.write(json.dumps(item,ensure_ascii=False)+"\n")return itemprint("保存数据成功")

然后开启框架,查看保存的数据text.txt

Scrapy框架的学习(2.scrapy入门,简单爬取页面,并使用管道(pipelines)保存数据)相关推荐

  1. Scrapy学习之第一个简单爬取小程序

    1.首先,先安装scrapy模块,使用命令:pip install scrapy,安装如果出现error: Microsoft Visual C++ 14.0 is required错误的话可参考文章 ...

  2. Scrapy框架的学习(9.Scrapy中的CrawlSpider类的作用以及使用,实现优化的翻页爬虫)

    1.CrawlSpider类通过一些规则(rules),使对于链接(网页)的爬取更具有通用性, 换句话说,CrawlSpider爬虫为通用性的爬虫, 而Spider爬虫更像是为一些特殊网站制定的爬虫. ...

  3. scrapy框架_Python学习之Scrapy框架

    爬虫界江湖地位No.1 说起Python,不得不说到它的爬虫应用,由于Python的短小精悍,用它来开发爬虫应用是最合适不过了,基于Python抓取网页的库有很多,例如requests,beatifu ...

  4. Scrapy框架的学习(1.scrapy的概念以及scrapy的工作流程)

    scrapy的概念 1.为什么要学习Scrapy?  因为会让我们的爬虫更快.更强 2.什么是scrapy? (1) Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现 ...

  5. Scrapy框架的学习(10.Scrapy中的模拟登陆(使用cookie模拟登陆))

    1. 为什么需要模拟登陆? 获取cookie,能够爬取登陆后的页面的数据 2.使用cookie模拟登陆的场景 (1) cookie过期时间很长,常见于一些不规范的网站 (2) 能在cookie过期之前 ...

  6. scrapy框架下的两个爬虫分工合作爬取智联招聘所有职位信息。

    爬虫一 本次爬取为两个爬虫,第一个爬虫爬取需要访问的URL并且存储到文本中,第二个爬虫读取第一个爬虫爬取的URl然后依次爬取该URL下内容,先运行第一个爬虫然后运行第二个爬虫即可完成爬取. 本帖仅供学 ...

  7. 18-爬虫之scrapy框架请求传参实现的深度爬取(全站爬取)05

    请求传参实现的深度爬取 深度爬取:爬取的数据没有在同一张页面中(首页数据+详情页数据) 在scrapy中如果没有请求传参我们是无法进行持久化存储数据的 实现方式: scrapy.Request(url ...

  8. 利用scrapy简单爬取新片场前20页视频数据,并存入mysql数据库

    1.创建Scrapy项目 scrapy startproject XPC 2.进入项目目录,使用命令genspider创建Spider(注意后面允许爬取的域要增加) scrapy genspider ...

  9. 爬虫学习(12):爬取诗词名句网并且下载保存

    用BeautifulSoup爬取并且下载.仅仅用作学习用途哈,不然又侵权了. 效果: 由于我是正在自学爬虫,不是很能找到非常优化的办法,是一名计算机大二学生,代码可能不是很好,还请大神指点,这是我扣扣 ...

最新文章

  1. R语言apriori算法进行关联规则挖掘(限制规则的左侧或者右侧的内容进行具体规则挖掘)、使用subset函数进一步筛选生成的规则去除左侧规则中的冗余信息、获取更独特的有新意的关联规则
  2. [CF1042F]Leaf Sets
  3. DIY穷人版谷歌眼镜,自定义手势操控,树莓派再一次被开发新玩法
  4. 高级学员:2015年10月24日作业
  5. Homography
  6. node --- 模块化连接MongoDB数据库的参数设置方案之一
  7. P4254-[JSOI2008]Blue Mary开公司【李超树】
  8. SpringBoot +Lombok注解精华篇
  9. 三十二楼层选几层最好_买房子选几层最好?网友:我是按这个公式来计算黄金楼层,你咋看?...
  10. 拼音模糊查询+java,Java将汉语转换成拼音,用于字母的模糊查询
  11. 超像素分割算法研究:SLIC分割算法原理讲解
  12. 计算机毕业设计jsp酒店管理系统
  13. Assembler如何把跳转汇编变成机器码的(一)
  14. POJ 1581 A Contesting Decision
  15. C#编写的winform程序绑定comboBox成功,添加一个默认的文字选项请选择
  16. 51单片机内部外设:实时时钟(SPI)
  17. 人工智能应用最多的七大领域解析
  18. 斐波拉契数列 java实现
  19. 自动化运维学习--python
  20. 使用.net 操作 微信公众平台 —— 接收用户操作

热门文章

  1. php es6写法,Web/PHPStorm ES6 语法支持以及实时编译
  2. 根据省市区查询对应权限下的数据
  3. java读取excel中的数据存到数据库
  4. 牛客题霸 NC14 按之字形顺序打印二叉树
  5. 汇编语言——《子程序应用(数制转换)程序设计》实验报告
  6. Vue——组件化开发DEMO
  7. Linux——CentOS安装桌面
  8. 积性函数(Product_Function)
  9. 【算法】设计算法求所有强连通分量的完整代码(kosaraju算法)
  10. JavaWeb学习之路——SSM框架之Mybatis(三)