zoukankan      html  css  js  c++  java
  • python 网络爬虫框架scrapy使用说明

    1 创建项目
    scrapy startproject tutorial

    2 定义Item
    import scrapy
    class DmozItem(scrapy.Item):
        title = scrapy.Field()
        link = scrapy.Field()
        desc = scrapy.Field()
    paser完后的数据保存到item列表,在传给pipeline使用

    3 编写第一个爬虫(Spider), 保存在 tutorial/spiders 目录下的 dmoz_spider.py, 爬虫要根据文件名来启动。
    import scrapy

    class DmozSpider(scrapy.Spider):
        name = "dmoz"
        allowed_domains = ["dmoz.org"]
        start_urls = [
            "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
            "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
        ]

        def parse(self, response):
                item = DmozItem()
                item['title'] = sel.xpath('a/text()').extract()
                item['link'] = sel.xpath('a/@href').extract()
                item['desc'] = sel.xpath('text()').extract()
                yield item
                
    start_urls设置要爬的URL列表
    parse成员函数在爬完一个页面后调用从页面里提取信息,保存到之前定义的item字典列表里。注意DmozItem为第二步定义的类

    4 pipeline
    当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理。在settings.py里定义pipeline处理顺序。
    pipline处理数据,同时决定是否将数据传入下一个pipeline

    import json

    class JsonWriterPipeline(object):

        def __init__(self):
            self.file = open('items.jl', 'wb')

        def process_item(self, item, spider):
            line = json.dumps(dict(item)) + " "
            self.file.write(line)
            return item

    5 启动爬虫
    scrapy crawl  dmoz   

  • 相关阅读:
    实验十四 线程设计
    实验十三 窗口设计
    实验十二 swing图形界面设计
    实验十一 图形界面二
    实验十 图形用户界面设计
    实验九 异常的抛出,捕获并处理
    实验八 接口与实现接口的类
    实验六 类的封装
    实验五:任意输入10个int类型数据,排序输出,再找出素数
    实验四:采用一维数组输出等腰三角形的杨辉三角
  • 原文地址:https://www.cnblogs.com/mingzhang/p/7597640.html
Copyright © 2011-2022 走看看