Scrapy是一个使用Python语言(基于Twisted框架)编写的开源网络爬虫框架,目前由Scrapinghub Ltd维护。Scrapy简单易用,灵活易拓展,并且支持跨平台。
pip安装Scrapy: pip install scrapy
确认成功:
简单做个Scrapy项目(以http://books.toscrape.com网站为例,获取所有图书的书名和价格信息)
一: 创建项目
在shell中使用 scrapy startproject XX(项目名称) 命令.
二:分析页面(在页面上右键-检查)
书本相关信息
下一页链接地址分析
三: 实现spider
在第一步创建的项目文件下创建spider
或者指定域名范围创建spider
Spider(book.py)内容
# -*- coding: utf-8 -*-
import scrapy
class BookSpider(scrapy.Spider):
name = 'book'
# allowed_domains = ['http://books.toscrape.com/']
start_urls = ['http://books.toscrape.com//']
def parse(self, response):
# 提取数据
# 每一本书的信息
for book in response.css('article.product_pod'):
# 书名信息
name = book.xpath("./h3/a/@title").extract_first()
# 价格信息
price = book.css("p.price_color::text").extract_first()
yield {
"name": name,
"price": price
}
# 提取链接
next_url = response.xpath("//li[@class='next']/a/@href").extract_first()
if next_url:
next_url = response.urljoin(next_url)
yield scrapy.Request(next_url, callback=self.parse)
四:运行并存储为json文件
scrapy crawl book -o book.json