• scrapy项目入门--shell的使用!


    1、创建一个scrapy的开发环境

    下载scrapy,但是由于pip版本等问题,所以没有最终成功,但是更改pycharm中的环境,使用anaconda就可以了,因为包含了scrapy环境!

    2、使用 scrapy 来创建 ArticleSpider项目

    打开cmd界面,输入scrapy startproject ArticleSpider

    然后在相应的目录找到 ArticleSpider项目,复制到pycharm中

    3、更改cmd界面目录,到达pycharm项目目录,我的目录是:C:UsersAdministratorPycharmProjectspythonArticleSpiderArticleSpiderspiders>

    4、把提前写好的一个books.py文件粘贴到pycharm目录下,在cmd界面输入scrapy crawl books -0 books.csv

    5、最终在pycharm页面看到生成了一个books.csv文件

    爬虫项目大概流程:
    -新建项目:scrapy startproject xxx
    -明确需要目标/产出:编写item.py
    -制作爬虫:地址spider/xxx.py
    -存储内容:pipelines.py

    ItemPipneline:
    -对应的是pipelines文件
    -爬虫爬取出数据存入item后,item中保存的数据需要进一步处理,比如清洗,去重,存储等。
    -process_item:
    -spider提取出来的item作为参数传入,同时传入的还有spider
    -此方法必须实现
    -必须返回一个Item对象,被丢弃的item不会被之后的pipeline处理
    2.__init__:构造函数
    -进行一些必要的参数初始化
    3.open_spider(spider):
    spider对象被开启的时候调用
    4.close_spider(spider):当spider对象被关闭的时候调用

    Spider:
    -对应的是文件夹spiders下的文件
    -__init__.py:初始化爬虫名称,start_urls列表
    -start_requests:生成Requests对象交给Scrapy下载并返回response
    -parse:根据返回的response解析出相应的item,item自动进入pipeline;如果需要,解析出url,url自动交给requests模块,一直循环下去
    -start——request:此方法被调用一次,读取start_url内容并启动循环过程
    -name:设置爬虫名称
    -start_urls:设置第一批怕去的url
    -allow_domains:spider允许爬取的域名列表
    -start_request(self):只被调用一次
    parse
    -log:日志记录

    中间件(DownloaderMiddlewares):
    -中间件是处于引擎和下载器中间的一层组件
    -可以有很多个,被按顺序加载执行
    -作用是对发出的请求和返回的结果进行预处理
    -在middlewares文件中
    -需要在settings中设置以便生效
    -编写中间件非常简单,中间件必须是scrapy.contrib.downloadermiddleware.DownloaderMiddleware的子类
    -一般一个中间件实现一个功能
    -必须实现以下一个或者多个方法
    -process_request(self,request,spider)
    -在request通过的时候被调用
    -必须返回None或Response或request或者raise,ignoreRequest
    -None:scrapy将继续处理该request
    -Request:scrapy将停止调用process_request并重新调度返回的request
    -Response:scrapy将不会调用其他的process_request或者process_exception,直接将该response作为节点,同时调用process_response函数
    -process_response(self,request,response,spider)
    -跟process_request大同小异
    -每次返回结果的时候会自动调用
    -可以有多个,按顺序调用

  • 相关阅读:
    windows 环境下 MySQL 8.0.13 免安装版配置教程
    mysql锁分析
    Sublime Text 安装sftp插件
    SecureCRT rz 上传文件失败问题
    java与javac版本不一致问题
    比较几种工具Python(x,y) Anaconda WinPython
    王石:没变强是因为你太舒服!
    网络爬虫urllib2 tornado
    R包介绍
    互联网金融必须知道:O2O、P2P、MRD、BRD、LBS、PV、UV、KPI、MRD、VP、UED....
  • 原文地址:https://www.cnblogs.com/fodalaoyao/p/10425783.html
Copyright © 2020-2023  润新知