美文网首页
16. scrapy框架

16. scrapy框架

作者: 薛东弗斯 | 来源:发表于2024-03-03 07:21 被阅读0次
    Scrapy框架课程介绍:
    ⦁   框架的简介和基础使用
    ⦁   持久化存储
    ⦁   代理和cookie
    ⦁   日志等级和请求传参
    ⦁   CrawlSpider
    ⦁   基于redis的分布式爬虫
    
    
    ⦁   scrapy框架的简介和基础使用 
    ⦁   概念:为了爬取网站数据而编写的一款应用框架,出名,强大。所谓的框架其实就是一个集成了相应的功能且具有很强通用性的项目模板。(高性能的异步下载,解析,持久化……)
    ⦁   安装:
    ⦁   linux mac os:pip install scrapy
    ⦁   win:
    ⦁   pip install wheel
    ⦁   下载twisted:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    pip install 下载好的框架.whl
    ⦁   pip install pywin32
    ⦁   pip install scrapy
    ⦁   基础使用: 使用流程
    ⦁   创建一个工程:scrapy startproject 工程名称
    ⦁   目录结构: 
    
    image.png
    ⦁   在工程目录下创建一个爬虫文件:
    ⦁   cd 工程
    ⦁   scrapy genspider 爬虫文件的名称 起始url
    ⦁   对应的文件中编写爬虫程序来完成爬虫的相关操作
    ⦁   配置文件的编写(settings)
    ⦁   执行 
    ⦁   在工程目录下创建一个爬虫文件
    ⦁   cd 工程
    ⦁   scrapy genspider 爬虫文件的名称 起始的url
    ⦁   对应的文件中编写爬虫程序来完成爬虫的相关操作
    ⦁   配置文件的编写(settings)
    ⦁   19行:对请求载体的身份进行伪装
    ⦁   22行:不遵从robots协议
    ⦁   执行 :scrapy crawl 爬虫文件的名称   --nolog(阻止日志信息的输出)
    
    

    创建第一个项目

    在Terminal后,进入期望的文件夹, scrapy startproject new_project 创建新项目
    

    新建好以后,就会自动生成如下目录结构


    image.png
    Terminal中cd new_project/spider
    scrapy genspider spider_name www.baidu.com    # 自动生成爬取www.baidu.com的py文件,文件名是spider_name.py
    # spider_name.py
    import scrapy
    
    
    class FirstSpider(scrapy.Spider):
        name = "first"
        allowed_domains = ["www.baidu.com"]
        start_urls = ["https://www.baidu.com"]
    
        def parse(self, response):
            pass
    
    # -*- coding: utf-8 -*-
    import scrapy
    
    
    class FirstSpider(scrapy.Spider):
        #爬虫文件的名称:通过爬虫文件的名称可以指定的定位到某一个具体的爬虫文件
        name = 'first'
        #允许的域名:只可以爬取指定域名下的页面数据
        allowed_domains = ['www.qiushibaike.com']
        #起始url:当前工程将要爬取的页面所对应的url
        start_urls = ['http://www.qiushibaike.com/']
    
        #解析方法:对获取的页面数据进行指定内容的解析
        #response:根据起始url列表发起请求,请求成功后返回的响应对象
        #parse方法的返回值:必须为迭代器或者空
        def parse(self, response):
    
            print(response.text)#获取响应对象中的页面数据
    
    执行:Terminal终端下scrapy crawl first
    

    相关文章

      网友评论

          本文标题:16. scrapy框架

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