目标:爬取scrapy给的目标网站的名言名句
代码:
# -*- coding: utf-8 -*- import scrapy from quotetutorial.items import QuoteItem class QuotesSpider(scrapy.Spider): name = 'quotes' allowed_domains = ['http://quotes.toscrape.com/'] start_urls = ['http://quotes.toscrape.com/'] def parse(self, response): quotes = response.css('.quote') for quote in quotes: item = QuoteItem() text = quote.css('.text::text').extract_first() item['text'] = text yield item next = response.css('.pager .next a::attr(href)').extract_first() url = response.urljoin(next) yield scrapy.Request(url=url,callback=self.parse)
真正需要输入的函数仅再parse里面
学到的scrapy命令:
scrapy startproject project_name -- 创建一个爬虫项目
scrapy genspider spider_name http://quotes.toscrape.com/ -- 创建爬虫文件
scrapy shell http://quotes.toscrape.com/ -- 进入shell试调
scrapy crawl spider_name --- 开始爬取 -o 可以输出文件 一般为json 另外 没有txt
收获算是入门了一点scrapy吧,另外遗留了两个个问题,留到day3解决:
1)我的代码和视频的代码,但是我的url并没有回溯,只爬取到第一页的内容,这个留到day2解决吧,今天先搞其他的。
2)并没有了解过python yield的用法,应该不仅是返回的意思。