爬虫框架Scrapy学习记录II--Selector学习
来源:互联网 发布:网络教育文凭事业单位 编辑:程序博客网 时间:2024/06/07 01:16
Selectors (选择器)
- 当抓取网页时,一般都是从HTML源码中提取数据。
- BeautifulSoup—网页分析库,缺点慢
- lxml,基于ElementTree的XML解析库
Scrapy 拥有自己一套机制。即为选择器(selectors),通过特定的 XPath 和 CSS 表达式来选择HTML文件中的某个部分
XPath 是一门用来在XML文件中选择节点的语言,也可以用在HTML上。 CSS 是一门将HTML文档样式化的语言。选择器由它定义,并与特定的HTML元素的样式相关连。
- example :
/html/head/title: 选择HTML文档元素下面的 标签。
/html/head/title/text(): 选择前面提到的 元素下面的文本内容
//td: 选择所有 元素
//div[@class=”mine”]: 选择所有包含 class=”mine” 属性的div 标签元素 - 路径的意义 :
nodename : 选取此节点的所有子节点。
/ : 从根节点选取。
// : 匹配所选择的当前节点来选择文档中的节点,而不考虑它们的位置。
. : 选取当前节点。
.. : 选取当前节点的父节点。
@ : 选取属性。
- example :
Scrapy 选择器构建于 lxml 库之上,这意味着它们在速度和解析准确性上非常相似。
大量实例:
response.css(‘title’) #选取title元素完整内容
response.css(‘title::text’) #只选取title元素的文本
response.css(‘title::text’).re(r’(\w+) to (\w+)’) #搭配正则选取
response.css(‘img’).xpath(‘@src’).extract() #css和xpath搭配使用 选取img元素中src属性的值
response.xpath(‘//base/@href’).extract() #选取base元素中的href属性
response.css(‘base::attr(href)’).extract() #选取base元素中的href属性
response.css(‘img::attr(src)’).extract() #获得图片的下载地址
response.xpath(‘//a[contains(@href, “image”)]/text()’).re(r’Name:\s*(.*)’) #选取a元素中属性为href 包含image文字的文本
response.css(“span.text::text”).extract_first() #选取span类名字为text的文本
response.css(‘div.tags a.tag::text’).extract() #选取类名字为tags的div元素 下类名字为tag的a元素的文本信息
- 爬虫框架Scrapy学习记录II--Selector学习
- 爬虫框架Scrapy学习记录I--ing
- python爬虫 scrapy框架学习
- 【Scrapy】学习记录2_爬虫Spider
- python爬虫框架scrapy学习笔记
- python爬虫框架scrapy学习笔记
- Python网络爬虫框架scrapy的学习
- 基于scrapy框架爬虫学习小结
- scrapy爬虫框架学习入门教程及实例
- Python爬虫框架scrapy 安装学习
- 大数据-爬虫框架学习--scrapy
- 学习安装python的Scrapy爬虫框架
- 爬虫框架--Scrapy学习笔记一
- 爬虫框架--Scrapy学习笔记二
- Scrapy爬虫框架学习笔 一
- 爬虫学习(三) Scrapy框架入门与豆瓣电影爬虫
- 爬虫 scrapy 框架学习 1. Scrapy框架业务逻辑的理解 + 简单爬虫案例示范
- Scrapy 爬虫学习
- JavaScript学习笔记_1.基础
- c语言实现打字小游戏
- 负隅顽抗的房价,终于被镇压了
- Linux必学的60个命令(四)
- HIS(Hospital Information System,医院信息系统)简介
- 爬虫框架Scrapy学习记录II--Selector学习
- BZOJ 3221 [Codechef FEB13] Obserbing the tree树上询问 树链剖分 主席树维护区间加等差数列
- 独木舟
- Linux必学的60个命令(五)
- Discuz API&JSON 适用于IOS及Android移动端开发
- RHEL6.4(或CentOS 6)源码安装Git2.9.3
- BGAQRCode-Android的简单使用
- Linux必学的60个命令(六)
- 不用VPN上Google的方法