爬虫学习 -- day2

目标:爬取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 quotes.toscrape.com/  -- 创建爬虫文件

scrapy  shell quotes.toscrape.com/   -- 进入shell试调 

scrapy crawl spider_name      --- 开始爬取    -o 可以输出文件   一般为json  另外 没有txt

遇到的问题:

1)url并没有回溯,只爬取到第一页的内容。

解决办法:在命令行设置url参数的时候 不要带 http:// 如果带入httpscrapy又会自动加上http:// 则url会失效

   scrapy  genspider spider_name   xxx.com

原文地址:https://www.cnblogs.com/tlbjiayou/p/12609401.html