• Scrapy的基本使用


    爬取:http://quotes.toscrape.com

    单页面

    # -*- coding: utf-8 -*-
    import scrapy
    
    
    class QuoteSpider(scrapy.Spider):
        name = 'quote'
        allowed_domains = ['quotes.toscrape.com']
        start_urls = ['http://quotes.toscrape.com/']
        """
        知识点
            1. text()获取标签的text
            2. @属性  获取属性的值
            3. extract()查找多个    extract_first() 查找一个
        """
        def parse(self, response):
            # print(response.text)
            quotes = response.xpath('//div[@class="col-md-8"]/div[@class="quote"]')
            # print(quotes)''
            for quote in quotes:
                print('=' * 20)
                # print(quote)
                # extract_first() 查找一个
                text = quote.xpath('.//span[@class="text"]/text()').extract_first()
                print(text)
                author = quote.xpath('.//span/small[@class="author"]/text()').extract_first()
                print(author)
                # extract()查找多个
                tags = quote.xpath('.//div[@class="tags"]/a[@class="tag"]/@href').extract()
                print(tags)

    所有页面

    # -*- coding: utf-8 -*-
    import scrapy
    
    
    class QuoteSpider(scrapy.Spider):
        name = 'quote'
        allowed_domains = ['quotes.toscrape.com']
        start_urls = ['http://quotes.toscrape.com/']
        """
        知识点
            1. text()获取标签的text
            2. @属性  获取属性的值
            3. extract()查找多个    extract_first() 查找一个
            4. response.urljoin()     url拼接
            5. scrapy.Request(url=_next, callback=self.parse)   回调
        """
        def parse(self, response):
            # print(response.text)
            quotes = response.xpath('//div[@class="col-md-8"]/div[@class="quote"]')
            # print(quotes)''
            for quote in quotes:
                print('=' * 20)
                # print(quote)
                # extract_first() 查找一个
                text = quote.xpath('.//span[@class="text"]/text()').extract_first()
                print(text)
                author = quote.xpath('.//span/small[@class="author"]/text()').extract_first()
                print(author)
                # extract()查找多个
                tags = quote.xpath('.//div[@class="tags"]/a[@class="tag"]/@href').extract()
                print(tags)
            print('>' * 40)
            next_url = response.xpath('//div[@class="col-md-8"]/nav/ul[@class="pager"]/li[@class="next"]/a/@href').extract_first()
            print(next_url)
            # 拼接url
            _next = response.urljoin(next_url)
            print(_next)
            # callback 回调函数 
            yield scrapy.Request(url=_next, callback=self.parse)

    补充

    from scrapy import Spider, FormRequest
    FormRequest(ulr= '', callback='', formdata='')
  • 相关阅读:
    【转】ArcEngine 打开AutoCAD文件的几种方法与读取CAD数据的方法
    汉字转拼音(VB版)
    ArcIMS9.2 + Web ADF for the Microsoft .NET Framework 安装配置
    【转载】有关web效率
    解决点击空链接返回页面顶部的方法
    j2se安装配置测试
    汉字转拼音(C#版)
    【转】Google 排名中的 10 个最著名的 JavaScript 库
    【转】并发危险:解决多线程代码中的 11 个常见的问题
    【转】ArcGIS 9.2中时态GIS的应用
  • 原文地址:https://www.cnblogs.com/wt7018/p/11729534.html
Copyright © 2020-2023  润新知