python 网络爬虫框架scrapy使用说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)) + "\n"
        self.file.write(line)
        return item

5 启动爬虫
scrapy crawl  dmoz   


















































以上是关于python 网络爬虫框架scrapy使用说明的主要内容,如果未能解决你的问题,请参考以下文章

Python网络爬虫之Scrapy框架(CrawlSpider)

Python编程基础之(五)Scrapy爬虫框架

2017.07.26 Python网络爬虫之Scrapy爬虫框架

Python网络爬虫_Scrapy框架_2.logging模块的使用

Scrapy:Python的爬虫框架

分享《精通Python爬虫框架Scrapy》中文PDF+英文PDF+源代码+Python网络数据采集