zoukankan      html  css  js  c++  java
  • 爬虫学习 -- 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

  • 相关阅读:
    ZOJ3626(树形dp)
    poj2486(树形dp)
    byte的范围-128-127
    div里面放img
    css为什么要定最小宽度和最大宽度,最小宽度和最大宽度有什么用
    Js中的apply和call
    Jquery点击事件出发顺序
    Jquery操作Dom
    Jquery选择器
    Django用ajax发送post请求时csrf拦截的解决方案
  • 原文地址:https://www.cnblogs.com/tlbjiayou/p/12609401.html
Copyright © 2011-2022 走看看