美文网首页爬虫
2018-11-07 Scrapy 实战(1)--初识

2018-11-07 Scrapy 实战(1)--初识

作者: 多吃水果少吃肉 | 来源:发表于2018-11-07 10:02 被阅读0次

    文章由本人博客首发转载请注明链接: http://qinfei.glrsmart.com/2018/11/06/scrapy-shi-zhan/

    前言

    一直知道有一个叫做 scrapy 的神器, 但是一直没有用过, 今天我找到了一个网站似乎很好的样子, 上面资料很玄乎,所以就爬了玩玩, 请原谅我不能说网站名称,大家都跟着我爬数据人家还玩不玩了? 你要是练手的话请自行寻找目标啦...

    概览

    这里放一个scrapy 官方图片


    scrapy_architecture.png

    安装

    请根据附件中的列表自行安装 requiremtnes.txt
    pip install -r requirements.txt

    开始工程

    scrapy startproject 工程名称
    

    然后工程结构就是这样啦

    工程名称/
        scrapy.cfg
    
        工程名称/
            __init__.py
    
            items.py
    
            pipelines.py
    
            settings.py
    
            spiders/
                __init__.py
                ...
    

    先看一下结构:

    • items 是我们需要爬取数据的结构描述, 不用着急,后面会讲到

    • pipelines 是一个数据管道, 所有 spiders 抓取的数据都会通过 pipelines 中的某一个或某几个对象中溜出去, 具体经过那一个就看你 settings 中怎么配置啦.

    • settings 所有参数设置都在里面,最好你的配置信息也在放在里面

    • spiders 爬虫文件夹, 在里面编写各种爬虫,可怕吗????

    小爬虫试试手 first_spider

    # -*- coding: utf-8 -*-
    import scrapy
    
    
    class FirstSpider(scrapy.Spider):
        '''
        第一个爬虫
        '''
        name = 'jys_seg'
        allowed_domains = ['domain']
        start_urls = ['http://domain:port/mweb/index.php']
    
        def parse(self, response):
            # 筛选中间表格内容, 用这些表格逐条爬取
            # print(os.getcwd())
            segs = response.xpath('//div[@class="mui-media-body"]/text()').extract()
            for seg in segs:
                print(seg)
    

    这个小玩意一点点代码,应该可以看懂吧, 解释一下:

    • name 爬虫名称,这个很重要, 运行爬虫的时候用
    • allowed_domains 允许访问域名
    • start_urls 爬虫开始的 url
    • parse 解析函数, 这个函数名不是瞎起的,根据 scrapy 的指导,访问完连接之后就进入了这个函数

    启动: scrapy crawl jys_seg 最后一个参数是里面的 name

    然后就可以看到输出爬取的信息了.

    response.xpath 这里是 lxml 解析了 页面里面的 div 具有 ui-media-body class 的 text() 内容, 获取到了我们要的目录.

    好了, 我们已经可以使用 scrapy 了, 简单吗? 云里雾里? 后面一点点讲吧

    -----下面是 requiremtnes.txt 内容,请根据需要安装----

    asn1crypto==0.24.0
    attrs==18.2.0
    Automat==0.7.0
    beautifulsoup4==4.6.3
    bs4==0.0.1
    certifi==2018.10.15
    cffi==1.11.5
    chardet==3.0.4
    constantly==15.1.0
    cryptography==2.3.1
    cssselect==1.0.3
    hyperlink==18.0.0
    idna==2.7
    incremental==17.5.0
    lxml==4.2.5
    mysqlclient==1.3.13
    parsel==1.5.1
    pyasn1==0.4.4
    pyasn1-modules==0.2.2
    pycparser==2.19
    PyDispatcher==2.0.5
    PyHamcrest==1.9.0
    pyOpenSSL==18.0.0
    queuelib==1.5.0
    requests==2.20.0
    requests-toolbelt==0.8.0
    Scrapy==1.5.1
    service-identity==17.0.0
    six==1.11.0
    SQLAlchemy==1.2.13
    Twisted==18.9.0
    urllib3==1.24
    w3lib==1.19.0
    zope.interface==4.6.0
    

    相关文章

      网友评论

        本文标题:2018-11-07 Scrapy 实战(1)--初识

        本文链接:https://www.haomeiwen.com/subject/kgymxqtx.html