scrapy框架(二)

一、scrapy 选择器

概述:

Scrapy提供基于lxml库的解析机制,它们被称为选择器。

因为,它们“选择”由XPath或CSS表达式指定的HTML文档的某部分。

Scarpy选择器的API非常小,且非常简单。

Scrapy选择器是通过scrapy.Selector类,通过传递文本或者TextResonse对象构造的实例。

选择器Selector对象使用

 选择器提供2个方法来提取标签
 ​
 xpath()   # 基于xpath的语法规则
 css() # 基于css选择器的语法规则
 快捷方式
 selector = response.xpath('')
 selector = response.css('')
 它们返回的是选择器对象的列表
 提取文本:
 selector.extract() 返回文本列表
 selector.extract_first() 返回第一个selector的文本,没有返回None;可以设置default
 ​
 有时候我们获取标签需要多次调用选择方法(.xpath()或.css())
 response.css('img').xpath('@src')
 ​
 Selector还有一个.re()方法使用正则表达式提取数据的方法。它返回字符串。
 它一般使用在xpath(),css()方法之后,用来过滤文本数据。
 re_first()用来返回第一个匹配的字符串。
 例如:
 response.xpath('//a[contains(@href, "image")]/text()').re(r'Name:\s*(.*)')
 contains() 模糊匹配

二、scrapy shell 调试工具

简介:用来调试Scrapy 项目代码的 命令行工具。

启动 shell
 启动Scrapy shell的命令语法格式如下:
 scrapy shell [option] [url|file]
 ​
 注意:分析本地文件是一定要带上路径,scrapy shell默认当作url
shell 的使用
 Scrapy shell 本质上就是个普通的python shell
 只不过提供了一些需要使用的对象,快捷方法便于我们调试。
 ​
 快捷方法:
 shelp()
 fetch(url[,redirect=True])
 fetch(request)
 view(response)
 scrapy 对象:
 crawler
 spider
 request
 response
 settings
 ​

三、scrapy.Spider

Spider类的属性、方法 描述
name属性 spider的名称
start_urls属性 蜘蛛开始爬取的url列表
customer_settings属性 自定义设置
start_requests()方法 开始前请求
parse(self, response) 默认回调函数
from_crawler 创建spider的类方法

scrapy框架(二)的更多相关文章

  1. 爬虫(十五):Scrapy框架(二) Selector、Spider、Downloader Middleware

    1. Scrapy框架 1.1 Selector的用法 我们之前介绍了利用Beautiful Soup.正则表达式来提取网页数据,这确实非常方便.而Scrapy还提供了自己的数据提取方法,即Selec ...

  2. Python项目--Scrapy框架(二)

    本文主要是利用scrapy框架爬取果壳问答中热门问答, 精彩问答的相关信息 环境 win8, python3.7, pycharm 正文 1. 创建scrapy项目文件 在cmd命令行中任意目录下执行 ...

  3. Python爬虫从入门到放弃(十二)之 Scrapy框架的架构和原理

    这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的在python3上运行Scrapy使用了Twisted作为框架,Twisted有些特殊的地方是它是 ...

  4. Python3爬虫(十八) Scrapy框架(二)

    对Scrapy框架(一)的补充 Infi-chu: http://www.cnblogs.com/Infi-chu/ Scrapy优点:    提供了内置的 HTTP 缓存 ,以加速本地开发 .   ...

  5. 十二 web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

    模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里 ...

  6. 使用scrapy框架爬取图片网全站图片(二十多万张),并打包成exe可执行文件

    目标网站:https://www.mn52.com/ 本文代码已上传至git和百度网盘,链接分享在文末 网站概览 目标,使用scrapy框架抓取全部图片并分类保存到本地. 1.创建scrapy项目 s ...

  7. (六--二)scrapy框架之持久化操作

    scrapy框架之持久化操作 基于终端指令的持久化存储 基于管道的持久化存储 1 基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过 ...

  8. Scrapy框架使用—quotesbot 项目(学习记录一)

    一.Scrapy框架的安装及相关理论知识的学习可以参考:http://www.yiibai.com/scrapy/scrapy_environment.html 二.重点记录我学习使用scrapy框架 ...

  9. 安装scrapy框架的常见问题及其解决方法

    下面小编讲一下自己在windows10安装及配置Scrapy中遇到的一些坑及其解决的方法,现在总结如下,希望对大家有所帮助. 常见问题一:pip版本需要升级 如果你的pip版本比较老,可能在安装的过程 ...

随机推荐

  1. HTTP基础及telnet基本用法

    HTTP概况 ​ 20世纪90年代初期,一个主要的新兴应用即万维网(World Wide Web)登上了舞台.Web是一个引起公众注意的因特网应用.Web的应用层协议是超文本传输协议(HTTP),它是 ...

  2. Java多线程——线程间通信

    Java多线系列文章是Java多线程的详解介绍,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java基础系列3:多线程超详细总结,这篇博客从宏观层面介绍了多线程的整体概况,接下来的几篇文章是对多线 ...

  3. Java中的Calendar 类和SimpleDateFormat 类

    1.Calendar 类:import java.util.Calendar;               Calendar cal = Calendar.getInstance();        ...

  4. 数据表与简单java类——一对多映射

    例如:给定一个分类表和子分类表 得到如下信息: 1.一个分类的完整信息: 2.根据分类获取其对应的子分类 package Mapping_transformation; class item { pr ...

  5. day20190915write from memory

    jQuery_Chapter02_20190912/ jQuery操作类样式.html <!DOCTYPE html> <html> <head> <meta ...

  6. 【Android - 自定义View】之View的draw过程解析

    draw(绘制)过程的作用是将View绘制到屏幕上面.View中有 draw() 方法和 onDraw() 方法,但onDraw()方法是空方法:ViewGroup中没有draw()方法,也没有onD ...

  7. 【数据结构】之顺序表(C语言描述)

    顺序表是线性表的一种,它将元素存储在一段连续的内存空间中,表中的任意元素都可以通过下标快速的获取到,因此,顺序表适合查询操作频繁的场景,而不适合增删操作频繁的场景. 下面是使用 C语言 编写的顺序表的 ...

  8. cbv请求分析

    CBV源码分析 DRF中中所有视图都是基于CBV形式完成, 所以分析其cbv源码, 了解drf的基本请求流程就比较有必要了. urls.py """下面是一个通用的url ...

  9. Redis系列(五):Redis的RESP协议详解

    一.什么是RESP Redis是Redis序列化协议,Redis客户端RESP协议与Redis服务器通信.Redis协议在以下几点之间做出了折衷: 简单的实现 快速地被计算机解析 简单得可以能被人工解 ...

  10. IT网址 插件 系统 软件 网址收集!

    http://www.css88.com http://www.runoob.com/jquery/jquery-plugin-validate.html http://www.iteye.com/n ...