例子:
分析过程:
scrapy shell url 查看页面的信息
view(response) 在浏览器中显示 response 所包含的对象,尝试提取
书名,价钱,星星数,
>>> view(response)
True
>>> sel = response.css('div.col-sm-6 product_main')
>>> sel.xpath('./h1/text()').extract_first()
'A Light in the Attic'
>>> sel.css('p.price_color::text').extract_first()
'£51.77'
>>> sel.css('p.star-rating').re_first('star-rating ([A-Za-z]+)')
'Three'
编码,库存量,评价数量
>>> sel = response.css('table.table.table-striped')
>>> sel.xpath('(.//tr)[1]/td/text()').extract_first()
'a897fe39b1053632'
>>> sel.xpath('(.//tr)[last()-1]/td/text()').re_first('\((\d+) available\)')
'22'
>>> sel.xpath('(.//tr)[last()]/td/text()').extract_first()
'0'
fetch(url) 下载第一个书籍列表页面就是第一页(http://books.toscrape.com/)
下载完后再调用 view 函数在浏览器中查看
提取每一个书籍页面的链接
>>> fetch('http://books.toscrape.com/')
2019-05-04 19:03:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://books.
toscrape.com/> (referer: None)
>>> view(response)
True
>>> from scrapy.linkextractors import LinkExtractor
>>> le = LinkExtractor(restrict_css='article.product_pod h3')
>>> le.extract_links(response)