zoukankan      html  css  js  c++  java
  • 【Python】爬虫-2

    8、 urllib2.urlopen可以接受一个Request对象或者url,(在接受Request对象时候,并以此可以来设置一个URL的headers),urllib.urlopen只接收一个url

    9、 urllib 有urlencode,urllib2没有,这也是为什么总是urllib,urllib2常会一起使用的原因

    10、      urlencode不能直接处理unicode对象,所以如果是unicode,需要先编码,有unicode转到utf8,举例:

    urllib.urlencode (u'bl'.encode('utf-8')) 

    11、      编解码示例 urllib.quote(空格用%20代替)和urllib.urlencode(空格用+代替)都是编码,但用法不一样

    8、 IV. urlretrieve() urlretrieve多数适用单纯的只下载的功能或者显示下载的进度,直接把url链接网页内容下载到retrieve_index.html里了,适用于单纯的下载的功能

     

    8、 在对字典数据编码时候,用到的是urllib.urlencode()

    9、 Scrapy组成

    1)引擎(Scrapy Engine:用来处理整个系统的数据流处理,触发事务。 
    2)调度器(Scheduler):用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。可以决定下载器下一步要下载的网址并去除重复的网址。 
    3)下载器(Downloader):用来下载网页内容,并将网页内容返回给爬虫(Spiders)。 
    4)爬虫(Spiders):从特定的网页中提取出需要的信息。可以用它来制定特定网页的解析规则,提取特定的实体(Item)或URL链接。每一个Spider负责一个或多个特定的网站。 
    5)项目管道(Item Pipeline):负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。 
    6)下载器中间件(Downloader Middlewares):位于Scrapy引擎和下载器之间的子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。 
    7)爬虫中间件(Spider Middlewares):介于Scrapy引擎和爬虫之间的框架,主要工作是处理爬虫的响应输入和请求输出。 
    8)调度中间件(Scheduler Middewares):介于Scrapy引擎和调度之间的中间件,处理从Scrapy引擎发送到调度的请求和响应。

    10、      Scrapy执行流程

    (1)   创建一个Scrapy项目

    (2)   引擎从调度器取出一个URL用于抓取

    (3)   引擎把URL封装成一个Requests请求然后传给下载器把相应结果下载下来并封装成应答包

    (4)   解析应答包

    (5)   定义解析规则(Item)

    (6)   根据定义规则解析内容后交给实体管道等待处理

    (7)   解析出URL交给调度器继续等待被抓取

  • 相关阅读:
    vue2.0阻止事件冒泡
    IconFont 图标制作和使用
    Gulp入门教程
    伪类实现特殊图形,一个span加三角形
    Vue渲染列表,在更新data属性后,列表未更新问题
    理解Array.prototype.slice.call(arguments)
    ;(function(){ //代码})(); 自执行函数开头为什么要加;或者!
    Hexo 搭建博客 本地运行 常见报错及解决办法
    说说JSON和JSONP,也许你会豁然开朗
    数组去重的常用方法
  • 原文地址:https://www.cnblogs.com/jingsheng99/p/9054610.html
Copyright © 2011-2022 走看看