scrapy框架(二)
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框架(二)的更多相关文章
- 爬虫(十五):Scrapy框架(二) Selector、Spider、Downloader Middleware
1. Scrapy框架 1.1 Selector的用法 我们之前介绍了利用Beautiful Soup.正则表达式来提取网页数据,这确实非常方便.而Scrapy还提供了自己的数据提取方法,即Selec ...
- Python项目--Scrapy框架(二)
本文主要是利用scrapy框架爬取果壳问答中热门问答, 精彩问答的相关信息 环境 win8, python3.7, pycharm 正文 1. 创建scrapy项目文件 在cmd命令行中任意目录下执行 ...
- Python爬虫从入门到放弃(十二)之 Scrapy框架的架构和原理
这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的在python3上运行Scrapy使用了Twisted作为框架,Twisted有些特殊的地方是它是 ...
- Python3爬虫(十八) Scrapy框架(二)
对Scrapy框架(一)的补充 Infi-chu: http://www.cnblogs.com/Infi-chu/ Scrapy优点: 提供了内置的 HTTP 缓存 ,以加速本地开发 . ...
- 十二 web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies
模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里 ...
- 使用scrapy框架爬取图片网全站图片(二十多万张),并打包成exe可执行文件
目标网站:https://www.mn52.com/ 本文代码已上传至git和百度网盘,链接分享在文末 网站概览 目标,使用scrapy框架抓取全部图片并分类保存到本地. 1.创建scrapy项目 s ...
- (六--二)scrapy框架之持久化操作
scrapy框架之持久化操作 基于终端指令的持久化存储 基于管道的持久化存储 1 基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过 ...
- Scrapy框架使用—quotesbot 项目(学习记录一)
一.Scrapy框架的安装及相关理论知识的学习可以参考:http://www.yiibai.com/scrapy/scrapy_environment.html 二.重点记录我学习使用scrapy框架 ...
- 安装scrapy框架的常见问题及其解决方法
下面小编讲一下自己在windows10安装及配置Scrapy中遇到的一些坑及其解决的方法,现在总结如下,希望对大家有所帮助. 常见问题一:pip版本需要升级 如果你的pip版本比较老,可能在安装的过程 ...
随机推荐
- HTTP基础及telnet基本用法
HTTP概况 20世纪90年代初期,一个主要的新兴应用即万维网(World Wide Web)登上了舞台.Web是一个引起公众注意的因特网应用.Web的应用层协议是超文本传输协议(HTTP),它是 ...
- Java多线程——线程间通信
Java多线系列文章是Java多线程的详解介绍,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java基础系列3:多线程超详细总结,这篇博客从宏观层面介绍了多线程的整体概况,接下来的几篇文章是对多线 ...
- Java中的Calendar 类和SimpleDateFormat 类
1.Calendar 类:import java.util.Calendar; Calendar cal = Calendar.getInstance(); ...
- 数据表与简单java类——一对多映射
例如:给定一个分类表和子分类表 得到如下信息: 1.一个分类的完整信息: 2.根据分类获取其对应的子分类 package Mapping_transformation; class item { pr ...
- day20190915write from memory
jQuery_Chapter02_20190912/ jQuery操作类样式.html <!DOCTYPE html> <html> <head> <meta ...
- 【Android - 自定义View】之View的draw过程解析
draw(绘制)过程的作用是将View绘制到屏幕上面.View中有 draw() 方法和 onDraw() 方法,但onDraw()方法是空方法:ViewGroup中没有draw()方法,也没有onD ...
- 【数据结构】之顺序表(C语言描述)
顺序表是线性表的一种,它将元素存储在一段连续的内存空间中,表中的任意元素都可以通过下标快速的获取到,因此,顺序表适合查询操作频繁的场景,而不适合增删操作频繁的场景. 下面是使用 C语言 编写的顺序表的 ...
- cbv请求分析
CBV源码分析 DRF中中所有视图都是基于CBV形式完成, 所以分析其cbv源码, 了解drf的基本请求流程就比较有必要了. urls.py """下面是一个通用的url ...
- Redis系列(五):Redis的RESP协议详解
一.什么是RESP Redis是Redis序列化协议,Redis客户端RESP协议与Redis服务器通信.Redis协议在以下几点之间做出了折衷: 简单的实现 快速地被计算机解析 简单得可以能被人工解 ...
- IT网址 插件 系统 软件 网址收集!
http://www.css88.com http://www.runoob.com/jquery/jquery-plugin-validate.html http://www.iteye.com/n ...