zoukankan      html  css  js  c++  java
  • 第十六节:Scrapy爬虫框架之项目创建spider文件数据爬取

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取所设计的, 也可以应用在获取API所返回的数据或者通用的网络爬虫。

    Scrapy原理图如下:

    1、创建Scrapy项目:进入你需要创建scrapy项目的文件夹下,输入scrapy startproject BLZX(此处BLZX为爬虫项目名称)

    项目创建完成后出现一个scrapy框架自动给你生成的爬虫目录

    2、进入创建好的项目当中创建spider爬虫文件blzxSpider:

    cd BLZX

    scrapy genspider blzxSpider  image.so.com  (其中image.so.com为爬取数据的链接)

    到此我们的scrapy爬虫项目已经创建完成,目录如下:

    创建好了blzxSpider爬虫文件后scrapy将会在改文件当中自动生成 如下代码,我们就可以在这个文件当中进行编写代码爬取数据了。

    # -*- coding: utf-8 -*-
    import scrapy
    
    
    class BlzxspiderSpider(scrapy.Spider):
        name = 'blzxSpider'
        allowed_domains = ['image.so.com']
        start_urls = ['http://image.so.com/']
    
        def parse(self, response):
            pass

    3、爬取360图片玩转的图片,此时我们需要编写blzxSpiser文件进行爬取360图片

    代码如下

    import scrapy
    import json
    
    class BoleSpider(scrapy.Spider):
        name = 'boleSpider'
    
        def start_requests(self):
            url = "https://image.so.com/zj?ch=photography&sn={}&listtype=new&temp=1"
            page = self.settings.get("MAX_PAGE")
            for i in range(int(page)+1):
                yield scrapy.Request(url=url.format(i*30))
    
        def parse(self,response):
            photo_list = json.loads(response.text)
            for image in photo_list.get("list"):
                id = image["id"]
                url = image["qhimg_url"]
                title = image["group_title"]
                thumb = image["qhimg_thumb_url"]
                print(id,url,title,thumb)

    抓取的结果为

    最后,我们已经将360图片的信息已经抓取下来了并打印在的控制台当中。但是我们需要把数据给下载下来,并且进行存储,所以在下一节当中会对item.py文件进行讲解。

  • 相关阅读:
    oracle mybatis 模糊查询
    IntelliJ IDEA各种引入jar包的方式及其关系
    eclipse中新建Java工程的三个JRE选项区别
    @Autowired注解和@resource注解的区别
    结合测试,黑盒测试
    Oracle左连接、右连接、全外连接以及(+)号用法
    samePropertyValuesAs()
    Collection.sort 的用法
    junit withcapture
    单元测试
  • 原文地址:https://www.cnblogs.com/zhaco/p/10696091.html
Copyright © 2011-2022 走看看