队列:

  在爬虫程序中, 用到了广度优先搜索(BFS)算法. 这个算法用到的数据结构就是队列。

  在python中提供了collection.deque用来实现了queue的相关操作,其官方实力如下:

  

集合:  

  在爬虫程序中, 为了不重复爬那些已经爬过的网站, 我们需要把爬过的页面的url放进集合中, 在每一次要爬某一个url之前, 先看看集合里面是否已经存在. 如果已经存在, 我们就跳过这个url; 如果不存在, 我们先把url放入集合中, 然后再去爬这个页面.

  Python提供了set这种数据结构. set是一个包含不同元祖的无序集。基本功能包括关系测试和剔除重复记录。集合对象同样支持数学操作,像联合、交、差和对称差。  

  大括号或set()函数可以用来创建集合。如果想要创建空集合,必须使用set()而不是{}。后者用于创建空字典。官方示例如下:

  

  

  其中,a - b表示在a中而不在b中的元素,a | b表示a与b的元素合集,a & b表示a与b中都有的元素, a ^ b表示a与b的非公共元素。

转载于:https://www.cnblogs.com/bianjun/p/4518550.html

《自己动手写网络爬虫》读书笔记——队列与集合相关推荐

  1. 《自己动手写操作系统》读书笔记——初识保护模式

    <自己动手写操作系统>读书笔记--初识保护模式 http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309930.html 书本第三 ...

  2. 记录《自己动手写网络爬虫 》书中涉及的内容学习一些算法

    第1篇  自己动手抓取数据 第1章  全面剖析网络爬虫 3 1.1  抓取网页 4 1.1.1  深入理解URL 4 1.1.2  通过指定的URL抓取 网页内容 6 1.1.3  Java网页抓取示 ...

  3. 从零开始学python网络爬虫读书笔记_从零开始学Python网络爬虫 中文pdf

    资源名称:从零开始学Python网络爬虫 中文pdf 第1章 Python零基础语法入门 1 第2章 爬虫原理和网页构造 17 第3章 我的第一个爬虫程序 26 第4章 正则表达式 45 第5章 Lx ...

  4. python爬虫教程:Python写网络爬虫的优势和理由

    在本篇文章里小编给各位整理了一篇关于选择Python写网络爬虫的优势和理由以及相关代码实例,有兴趣的朋友们阅读下吧. 什么是网络爬虫? 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页 ...

  5. 用python写网络爬虫 第2版 pd_用Python写网络爬虫(第2版)

    用Python写网络爬虫(第2版)电子书 畅销的Python网络爬虫发实战图书全新升级版,上一版年销量近40000册. 针对Python 3.6版本编写. 提供示例完整源码和实例网站搭建源码,确保用户 ...

  6. 《自己动手写Docker》学习笔记2

    <自己动手写Docker>学习笔记2 1 前言 由于本人毕业设计与云原生领域相关,因此最近在学习Docker相关知识,<自己动手写Docker>涵盖了Docker底层的各类知识 ...

  7. 《用Python写网络爬虫第2版》PDF中英文+代码分析

    互联网包含了迄今为止最有用的数据集,并且大部分可以免费公开访问.但是,这些数据难以复用.它们被嵌入在网站的结构和样式当中,需要抽取出来才能使用.从网页中抽取数据的过程又称为网络爬虫,随着越来越多的信息 ...

  8. [原创]手把手教你写网络爬虫(2):迷你爬虫架构

    手把手教你写网络爬虫(2) 作者:拓海 (https://github.com/tuohai666) 摘要:从零开始写爬虫,初学者的速成指南! 封面: 介绍 大家好!回顾上一期,我们在介绍了爬虫的基本 ...

  9. 网页爬虫python代码_《用python写网络爬虫》完整版+源码

    原标题:<用python写网络爬虫>完整版+源码 <用python写网络爬虫>完整版+附书源码 本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中 ...

  10. 《用Python写网络爬虫》——1.5 本章小结

    本节书摘来自异步社区<用Python写网络爬虫>一书中的第1章,第1.5节,作者 [澳]Richard Lawson(理查德 劳森),李斌 译,更多章节内容可以访问云栖社区"异步 ...

最新文章

  1. Global.asax中Application_Error无法执行
  2. [转]Effective C# 原则5:始终提供ToString()
  3. Java 多维数组遍历
  4. linux 故障注入_基于chaosblade的故障注入平台小试
  5. mysql5.7学习nosql_如何学习NoSQL?
  6. 玩转mini2440开发板之【linux内核的编译和下载】
  7. docker搭建私有仓库
  8. 2021,新手初学写作的几个温馨建议
  9. 【转】CSS3 圆角 阴影 渐变 透明 旋转等功能详述
  10. IDEA配置好maven后新建maven项目一直build失败的解决方法
  11. 一本通1586【 例 2】数字游戏
  12. rsync的自动脚本实现方案(非rsyncd服务)
  13. 【Git/Github学习笔记】Git起步
  14. oracle理论笔试题,Oracle数据库笔试题(附答案)
  15. jspstudy启动mysql失败_JspStudy配置Jspxcms安装教程,以及数据库设置;
  16. CPL、BCPL、B语言
  17. svn版本管理软件——创建svn私人仓库
  18. 数据库锁 与 事务隔离级别
  19. VMware安装CentOS7以及CentOS官网下载自选镜像
  20. mallplus多商户商城全流程 操作文档

热门文章

  1. 隔空投送问题解决(高阶版)macbook以及iphone设备
  2. html中label怎么设置自动换行,label属性换行 VB中label显示怎么换行
  3. 联想官方一键关闭Win10Defender、关闭Win10自动更新工具
  4. 如何用getevent查看TouchPanel上报数据和如何抓取framework层input事件相关的日志
  5. 单片机c语言直接寻址 间接寻址,pic单片机教程之数据存储器的直接间接寻址方式...
  6. 红帽linux安装ftp服务,红帽Linux安装FTP服务
  7. 最近的计算机网络新技术,计算机网络通信新技术的现状与发展趋势
  8. python爬虫:爬取携程航班数据
  9. 摘录自《蔡康永的说话之道》-笔记
  10. 教你100%成功安装Mathcad15