zoukankan      html  css  js  c++  java
  • python scrapy 基本操作演示代码


    
    # -*- coding: utf-8 -*-
    import scrapy
    # from quotetutorial.items import QuoteItem
    from quotetutorial.items import QuotetutorialItem
    
    # 主要编辑项目信息基本上都在在这里完成的
    
    class QuotesSpider(scrapy.Spider):
        name = 'quotes'
        allowed_domains = ['quotes.toscrape.com']
        start_urls = ['http://quotes.toscrape.com/']
    
        # 爬取信息
        def parse(self, response):
            # pass
            # 打印源代码
            # print(response.text)
            quotes = response.css('.col-md-8 .quote')
            for quote in quotes:
                item = QuotetutorialItem()
                text = quote.css('.text::text').extract_first()
                author = quote.css('.author::text').extract_first() # 只提取一个内容 类似于 findone
                tags = quote.css('.tags .tag::text').extract() # 提多多个内容 类似于 findall
                item['text'] = text
                item['author'] = author
                item['tags'] = tags
                yield item
            next = response.css('.pager .netxt a::attr(href)').extract_first() # 选择下一页
            url = response.urljoin(next) # 因为获取的地址不完整,获取完整的网址加内容连接地址
            yield scrapy.Request(url=url,callback=self.parse()) # 从新调用自己并翻页
    # 保存文件
    # scrapy crawl quotes -o quotes.json
    # scrapy crawl quotes -o quotes.jl
    # scrapy crawl quotes -o quotes.csv
    # scrapy crawl quotes -o quotes.xml
    # scrapy crawl quotes -o ftp://user:pass@ftp.example.com/path/quotes.csv
    
    
    
  • 相关阅读:
    C
    C
    如何收集项目日志统一发送到kafka中?
    Jmeter压测快速体验
    实时收集Storm日志到ELK集群
    Neo4j的查询语法笔记(二)
    Logstash2.3.4趟坑之集成Redis哨兵模式
    Spring-Boot中如何使用多线程处理任务
    使用SpringBoot1.4.0的一个坑
    手动从零使用ELK构建一套搜索服务
  • 原文地址:https://www.cnblogs.com/wordgao/p/9824658.html
Copyright © 2011-2022 走看看