上篇博文讲述了scrapy的框架和组件,对于scrapy有了基本的了解,那么我们进入今天的正题:使用Scrapy框架爬取数据。
1.创建Scrapy项目
创建Scrapy工程文件的命令:
scrapy startproject scrapytest
此命令是python默认目下创建的工程。
指定目录文件下创建项目:
1.进入指定目录 cd D:\workspaces
2.该目录下执行:scrapy startproject scrapytest
2.scrpay项目结构
使用PyCharm,打开scrpy的工程文件,效果如下:
2.1 spiders 文件夹就是我们编写spider存放的目录
2.2 items是定义数据类型
2.3 pipeline 负责处理被spider提取出来的item
2.4 Middlewares 默认两个中间件,一个spider 一个是download
2.5 setting 配置信息 默认:
3.抓取某品会的纸尿裤数据
3.1 定义数据
class DiaperItem(scrapy.Item):
diaper_name = scrapy.Field() #纸尿裤商品名称
diaper_price = scrapy.Field()#价格
diaper_url = scrapy.Field() #详情路径
diaper_source_shop = scrapy.Field() #来源商城(默认为某品会)
3.2 抓取目标分析
目标是抓取上图所有的纸尿裤数据。
3.2.1抓取页面代码
通过写spider直接访问路径:https://category.vip.com/suggest.php?keyword=纸尿裤
from scrapy.spiders import Spider
from scrapy.http.request import Request
class vipShopSpider(Spider):
name = "vipshopSpider"
allowed_domains = ["category.vip.com"]
start_url = 'https://category.vip.com/suggest.php?keyword=%E7%BA%B8%E5%B0%BF%E8%A3%A4'
def start_r