Scrapy提取数据有自己的一套机制|scrapypider数据选择器py文件的使用方法

Scrapy提取数据有自己的一套机制|scrapypider数据选择器py文件的使用方法
文章图片
Scrapy提取数据有自己的一套机制 , 它常被称为选择器(selectors) , 其实现方式主要是通过XPath或者CSS表达式来选择HTML文件的特定部分 。 在Scrapy框架下写网络爬虫程序 , 最为关键的工作就是针对目标信息 , 设计合适的选择器来提取数据 。 所以 , 掌握选择器的使用方法至关重要 。
01
任务说明
购物网站同类商品有成百上千件 , 当需要获取这些商品信息进行数据分析与处理时 , 如果采用人工逐条录入的方式显然效率太低 , 然而 , 采用爬虫则可以轻松完成此工作 。 本项目以京东购物网站为例 , 将“手表”作为关键词 , 搜索所有商品 , 爬取每个条目的基本信息 , 包含商品名称、价格、图片链接地址等 。 然后 , 将这些信息保存为JSON类型的文件和CSV文件 , 并将对应图片以其价格命名 , 保存到当前文件夹中 。 在本爬虫项目中 , 用户可以替换搜索关键词“手表” , 爬取自己想要的商品信息 。
02
任务展示
所爬取的部分商品名称、价格、图片链接信息如图7-12所示 。
Scrapy提取数据有自己的一套机制|scrapypider数据选择器py文件的使用方法
文章图片
■图7-12保存在JSON文件中的结果数据
下载的部分商品图片如图7-13所示 。
Scrapy提取数据有自己的一套机制|scrapypider数据选择器py文件的使用方法
文章图片
■图7-13下载的部分商品图片
03
任务实现
1

分析目标网站
(1)按键盘上的功能键F12 , 调出“开发者工具”窗口 , 再按Ctrl+Shift+C组合键 , 进入“选择元素”模式 , 将光标移动到第一个商品的“名称”上面 , 会在开发者工具窗口中显示对应的元素信息 。 其title属性的值就是商品名称 , 复制该名称 。
(2)在网页上右击 , 选择“查看网页源代码”菜单 , 按Ctrl+F组合键调出“查询框” , 粘贴第一步的名称信息 , 在源码中搜索 。 由于其中包含较长的URL地址信息 , 为了方便查看关键信息 , 这里用“占位”两字替换掉这段URL , 得到如下结果 。
Scrapy提取数据有自己的一套机制|scrapypider数据选择器py文件的使用方法
文章图片
(3)从这段源码看出需要的目标信息都在其中 。
名称信息:
title="NOMOS日晷指环黑色限定版
价格信息:
$2180.00
商品图片:
除此之外 , 还包含产品详情页信息等 。
(4)经抽查验证 , 确认其他商品同样满足该特征 , 并且一个页面的所有商品包含在如下标签中 。
其中 , 每一个商品又以如下标签为起始标记 。
另外 , 一个商品包含很多个页面 , 通过观察 , 查找各个页面的网址规律 。 翻到第二页 , 网址如下 。
1&vt=2&page=3&s=37&click=0
再多翻几页 , 发现主要的变化规律如下 。
①“page=3”的值 , 每翻一页增加2 。
②“keyword=%E6%89%8B%E8%A1%A8”是编码后的十六进制形式 , 代表的是搜索关键词“手表” , 将整个网址复制到浏览器的地址栏中 , 这段信息会自动转码为汉字“手表” 。 所以爬取不同商品时 , 只需要替换该关键词即可 。
2

创建Scrapy项目
在命令提示符窗口中执行命令:
crapystartprojectJdSpider
则在当前目录下自动生成工程文件夹JdSpider 。
3

创建爬虫文件*.py
在命令提示符窗口中 , 切换到工程目录JdSpider下 , 执行命令:
Scrapygenspiderjdgwjd.com
则在子目录JdSpider中产生爬虫文件Jdgw.py 。
4

修改setting.py文件完成相关环境配置工作
类似项目7.1的操作 , 在setting.py文件中修改项目设置 , 具体内容如下 。