(本次是继上次网络数据采集的基础知识的后续更新。)(总结与分析在东软教育在线线上学习的学习心得。)如有错误,欢迎各位技术大牛指正。
搜索策略

    *常见的网页搜索策略可以分为,深度优先、广度优先和最佳优先三种。*

广度优先搜索策略是指在爬取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单,为覆盖尽可能多的页面,一般使用广度优先搜索策略,也有很多研究将广度优先搜索策略,应用于聚焦网络爬虫中。其基本思想,是认为与初始URL在一定链接距离内的网页,具有主题相关性的概率是很大的。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略爬取网页,再将无关的网页过滤掉。但这个策略的缺点在于,随着爬取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。

最佳优先搜索策略是按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行爬取。它只访问经过网页分析算法,预测为“有用”的网页,因为最佳优先策略是一种局部最优搜索算法。在爬取路径上的很多相关网页可能被忽略。因此需要将最佳优先搜索策略。结合的具体的应用进行改进,以跳出局部最优点。

深度优先搜索策略从起始网页开始,选择一个URL进入,分析这个网页中的URL,选择下一个再进入。如此一个链接一个链接地爬取下去,直到处理完一条路线之后再处理下一条路线。深度优化搜索策略设计较为简单,然而门户网站提供的链接往往是最具有最高的价值,同时这种策略的爬取深度直接影响着爬取命中率及爬取效率。正确的爬取深度是该种策略的关键,相对于其他两种策略而言,此种策略很少使用。
网页抽取技术

    基于机器学习的网页抽取算法大致可以分为以下几类:

1、基于启发式规则和无监督学习的网页抽取算法
2、基于分类器的网页抽取算法
3、基于网页模板自动生成的网页抽取算法
基于启发式规则和无监督学习的网页抽取算法是目前最简单也是最有效的算法,且其具有较高的通用性,即算法往往在不同语种,不同结构的网页上都有效。早期的这类算法大多数,没有将网页解析为DOM树,而是将网页解析为一个token序列。例如下面这段html源码。

<body><div>广告...(10字)</div><div class="main">正文...(600字)</div><div class="foot">页脚...(7字)</div>
</body>
因此,找出token序列中的一个子序列,使得这个子序列中token对应的分数的综合达到最大,则这个子序列就是网页中的正文。从另一个角度来理解这个规则,即从heml源码字符串中,找出一个子序列,这个子序列应该尽量包含较多的文本和较少的标签。无监督学习在第一类算法中也起到重要作用,很多算法利用聚类的方法将网页的正文和非正文自动分为两类。

基于分类器的网页抽取算法它的实现流程大致为:找几千个网页作为训练集,对网页的正文和非正文(即需要抽取和不需要抽取的部分,进行人工标注。)例如一些算法将DOM树的标签类型(div,p,body等)作为特征之一,选择适合的分类器,利用特征进行训练。

基于网页模板自动生成的网页抽取算法抽取算法有很多种。咱们这次举例使用多个相同结构网页(通过URL判断)的对比,找出其中的异同,页面间的共性的部分是非正文。页面间差别较大的部分有可能是正文。例如在一些网站中,所有的网页页脚都相同,都是备案信息或者版权申明之类的。这是页面之间的共性,因此算法认为这部分是非正文,而不同网页的正文往往是不同的,因此算法识别出正文页较容易。

我们可以看出爬虫的形态是多种多样的,然后在使用爬虫的过程中,还存在很多的限制。这里的限制主要是指网站的Robots协议。*(Robots协议的全称是“网络爬虫排除标准”也称爬虫协议、机器人协议等,网站通过Robots协议告诉搜索引擎哪些页面能被爬取、哪些页面不能被爬取。)*使用Robots协议可以屏蔽一些网站中比较大的文件,例如图片、音乐、视频等。Robots协议是国积互联网通行的道德规范:1、搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权;2、网站有义务保护其使用者的个人信息和隐私不被侵犯。

根据Robots协议,在网站域名的根目录下放一个名为robots.txt文件,里面可以指定不同的网络爬虫能访问的页面和禁止访问的页面。首先获取到这个文件,并解析其中的规则,然后根据规则来采集网站的数据。为爬虫提供一堆访问地址,爬虫接着爬取这些新发现的链接指向的网页。上述过程要循环往复的执行多次。

总结:

本次旨在介绍网页搜索策略以及爬虫道德,欢迎有兴趣的大佬学习,如有错误欢迎指正。

数据采集集成-网络数据采集(二)相关推荐

  1. 网络数据采集-免费网络数据采集软件

    网络数据采集,相信每个人都了解数据的重要性.根据大量的数据可以分析以及预测出行业的发展趋势以及模式.今天给大家分享一款免费的网络数据采集工具,全程可视化点选采集详细如图. 在网站优化行业,一些新手有一 ...

  2. Python爬虫初学二(网络数据采集)

    目录 一.网络数据采集 1.什么是网络数据采集 2.网络数据采集的特点 二.网络数据采集之urllib库 三.网络数据采集之requests库 1.requests安装 2.request方法汇总 3 ...

  3. 什么是大数据采集?大数据采集的过程是什么?

    大数据开启了一个大规模生产.分享和应用数据的时代,它给技术和商业带来了巨大的变化.麦肯锡研究表明,在医疗.零售和制造业领域,大数据每年可以提高劳动生产率0.5-1个百分点.大数据在核心领域的渗透速度有 ...

  4. 笔记之Python网络数据采集

    笔记之Python网络数据采集 非原创即采集 一念清净, 烈焰成池, 一念觉醒, 方登彼岸 网络数据采集, 无非就是写一个自动化程序向网络服务器请求数据, 再对数据进行解析, 提取需要的信息 通常, ...

  5. python数据采集框架_20190715《Python网络数据采集》第 1 章

    <Python网络数据采集>7月8号-7月10号,这三天将该书精读一遍,脑海中有了一个爬虫大体框架后,对于后续学习将更加有全局感. 此前,曾试验看视频学习,但是一个视频基本2小时,全部拿下 ...

  6. Python 网络数据采集(三):采集整个网站

    Python 网络数据采集(三):采集整个网站 1.采集整个网站 2. 完整代码 3. 下一节,继续优化这个"爬虫"程序 参见  作者:高玉涵  时间:2022.5.30 15:3 ...

  7. 如何快速掌握 Python 数据采集与网络爬虫技术

    摘要: 本文详细讲解了 python 网络爬虫,并介绍抓包分析等技术,实战训练三个网络爬虫案例,并简单补充了常见的反爬策略与反爬攻克手段.通过本文的学习,可以快速掌握网络爬虫基础,结合实战练习,写出一 ...

  8. 如何快速掌握Python数据采集与网络爬虫技术

    云栖君导读:本文详细讲解了python网络爬虫,并介绍抓包分析等技术,实战训练三个网络爬虫案例,并简单补充了常见的反爬策略与反爬攻克手段.通过本文的学习,可以快速掌握网络爬虫基础,结合实战练习,写出一 ...

  9. python数据采集有哪些技术_如何快速掌握Python数据采集与网络爬虫技术

    一.数据采集与网络爬虫技术简介 网络爬虫是用于数据采集的一门技术,可以帮助我们自动地进行信息的获取与筛选.从技术手段来说,网络爬虫有多种实现方案,如PHP.Java.Python ....那么用pyt ...

最新文章

  1. error LNK2001: 无法解析的外部符号 public: static int Pe...
  2. 防火墙双机热备三大协议(VRRP-VGMP-HRP)原理
  3. python语言怎么学-Py列为黑客应该学的四种编程语言之一 新手该怎么学
  4. java调节音量代码_用Java调用VC音量控制程序_java
  5. ASP.NET定制简单的错误处理页面
  6. Python——itertools.chain.from_iterable将多个迭代器连接成一个统一的迭代器的最高效的方法
  7. python 读取excel 生成json 读取json
  8. ❤️14万字的《微服务开发SpringBoot—从基础高级》(建议收藏)❤️
  9. services.xml应该放在项目的哪里_新轮胎应该放在前轮还是后轮?
  10. 小团队管理与大团队管理
  11. 怎么开发直播短视频源码?
  12. 选择SOA平台的标准是什么?
  13. html embed页面无法播放视频,embed标签什么意思 手机无法播放网页上embed标签的视频...
  14. Mysql增删改查(CURD)
  15. axure9实用操作设置鼠标单击交互事件为什么没响应
  16. Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
  17. 资讯_计算机屏幕_镜面屏;
  18. 28 Apr 10:25:21.537 # HandleServiceCommands: system error caught. error code=1072, message = Create
  19. 怎么用计算机算三角函数值,如何在手机计算器中由三角函数值求角度
  20. 工具总结篇——vault

热门文章

  1. 有一种海报,叫别人家的海报!
  2. 反编译python 生成的exe源码
  3. 实现抖音时光倒流效果---OpenCV-Python开发指南(56)
  4. Rational Rose时序图组成与对象的生命线设置
  5. 超时空的爱情--胡彦斌
  6. 有关Joplin的Markdown的一些知识
  7. 学习笔记:C++ RTTI(dynamic_casttypeid)
  8. uglify对代码加密,局部变量混淆
  9. oracle 11g下载 Oracle 10g下载 Oracle 9i下载
  10. 瑞芯微 Rockchip RKNN-Toolkit 环境搭建