当页面被爬虫解析所需的数据存入Item后,将被发送到项目管道(Pipeline),并经过几个特定的次序处理数据,最后存入本地文件或存入数据库
pip install scrapy
# 选择要在哪个目录下创建爬虫项目
scrapy startproject 项目名
* scrapy.cfg: 项目的配置文件
* test/: 项目的Python模块,将会从这里引用代码
* test/items.py: 项目的目标文件
* test/pipelines.py: 项目的管道文件
* test/settings.py: 项目的设置文件
* test/spiders/: 存储爬虫代码目录
# scrapy genspider 爬虫名 "爬虫范围"
scrapy genspider book "dangdang.com"
class BookSpider(scrapy.Spider):
name = 'book'
allowed\_domains = ['dangdang.com']
start\_urls = ['http://category.dangdang.com/pg1-cp01.54.92.01.00.00.html'] # 修改url爬去指定类别书籍
# response 为以请求后响应结果
def parse(self, response):
# 使用Xpath获取内容
for each in response.xpath('//\*[@id="component\_59"]/li'):
# extract() 获取文本内容
title = each.xpath("p[1]/a/text()").extract() # 获取数据标题
price = each.xpath("p[3]/span[1]/text()").extract() # 获取价格
star = each.xpath("p[4]/a/text()").extract() # 获取评分
detail = each.xpath("p[2]/text()").extract() # 获取描述信息
if not detail:
detail = ["本书暂无detail、、、、、、"]
print('detail', detail)
print("title", title)
print('price', price)
print('star', star)
# scrapy crawl 爬虫名
scrapy crawl book
--spider=SPIDER: 跳过自动检测spider并强制使用特定的spider
--a NAME=VALUE: 设置spider的参数(可能被重复)
--callback or -c: spider中用于解析返回(response)的回调函数
--pipelines: 在pipeline中处理item
--rules or -r: 使用 CrawlSpider 规则来发现用来解析返回(response)的回调函数
--noitems: 不显示爬取到的item
--nolinks: 不显示提取到的链接
--nocolour: 避免使用pygments对输出着色
--depth or -d: 指定跟进链接请求的层次数(默认: 1)
--verbose or -v: 显示每个请求的详细信息
scrapy parse http://www.example.com/ -c parse_item
scrapy genspider [-t template] <name> <domain>
scrapy genspider -t basic example example.com
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。