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   

  • 相关阅读:
    12月11日
    081212 晴
    12月10日
    树莓派项目——基于树莓派的WIFI网络互传系统设计
    IDE
    边缘检测
    Android Launcher桌面应用快捷方式的开发
    android ui事件处理分析
    listview 分析
    ApplicationsIntentReceiver.class
  • 原文地址:https://www.cnblogs.com/mingzhang/p/7597640.html
Copyright © 2011-2022 走看看