Requests + BeautifulSoup 虽然好用,首先,安装这尊大神:pip install scrapy
然后,创建一个蜘蛛巢穴:scrapy startproject mysect
在巢穴中,我们需要定义一只蜘蛛的捕食规则。
import scrapy
class BookSpider(scrapy.Spider):
name = "books" # 蜘蛛代号
start_urls = ['http://books.toscrape.com/'] # 狩猎场
def parse(self, response):
# 1. 捕食 (提取数据)
for book in response.css('article.product_pod'):
yield {
'title': book.css('h3 a::attr(title)').get(),
'price': book.css('p.price_color::text').get(),
}
# 2. 吐丝 (寻找下一页)
next_page = response.css('li.next a::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
在终端中下令:scrapy crawl books -o loot.json
蛛后会瞬间放出无数小蜘蛛,沿着网页链接一路狂奔,
将抓到的猎物打包成 loot.json 献给你。
任务:在 Scrapy 中,用于把提取的数据交给管道 (Pipeline) 处理的关键字是什么?