数据采集与预处理技术考点复习——第五章

第五章:互联网数据抓取与处理技术

1. 常用网络爬虫的策略有哪些

  • 深度优先策略:按照深度由低到高的顺序,依次访问下一级网页链接,直到不能再深入为止。爬虫在完成一个爬行分支后返回到上一链接节点进一步搜索其他链接。当所有链接遍历完后,爬行任务结束。
  • 广度优先策略:按照广度优先的搜索思想,逐层抓取URL池中的每一个URL的内容,并将每一 层的扇出URL纳入URL池中,按照广度优先的策略继续遍历。
  • 局部PageRamk策略:按照一定的网页分析算法,预测候选URL与目标网页的相似度或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。
  • OPIC策略:初始时给所有页面-一个相同的初始现金(cash)。当下载了某个页面之后,将P的现分摊给所有从P中分析出的链接并将P的现金清空。对于待抓取AL队列中的所有页面都须按照现金数进行排序。
  • 大站优先策略:指对待抓取URL队列中的所有网页,根据所属的网站进行分类。对于待下载页面量大的网站,优先下载
  • 反向链接数策略:指一个网页被其他网页链接指向的数量。反向链接数表示的是一个网页的内容受到其他人推荐的程度。
  • 最佳优先搜索策略:通过URL描述文本与目标网页的相似度,或者与主题的相关性,根据所设定的阈值选出有效的URL进行抓取。

2. 简述通用网络爬虫的工作过程

通用网络爬虫它是根据预先设定的一个或若干初始种子URL为开始,以此获得初始网页上MbRL列表,在爬行过程中不断从URL队列中获取一个个URL,进而访问并下载该页面。页面下载后,页面解析器去掉页面上的HTML标记后得到页面内容将摘要、URL等信息保存到Web数据库中,同时抽取当前页面上新的URL,保存到URL队列中,直到满足系统停止条件。

3. 分布式网络爬虫按通信方式分为哪几种方式

  • 主从式:有一台专门的Master服务器来维护待抓取URL队列,它负责每次将URL分发到不同的Slave服务器,而Slave服务器则负责实际的网页下载作。Master服务器除了维护待抓取URL队列以及分发URL之外,还要负责调解各个Slave服务器的负载情况。
  • 对等式:所有的抓取服务器在分工上没有不同。每一台抓取服务器都可以从待抓取URL队列中获取URL。为了使服务器合理分工,通常利用hash算法将待抓取的URL分配给不同的服务器即计算Hmod m,其中H为该URL的主域名的hash值,m为服务器的数量,计算得到的数就是处理该URL的主机编号。

4. Python的Urllib库包括哪些模块,各自可以完成什么功能

  • urllib.requst模块:发送request和获取request的结果。
  • urllib.error模块:捕获由urllib.request产生的异常并返回错误原因
  • urllib.parse模块:定义了一个标准接口,把URL字符串拆分成组件,并能把组件合成URL或者将相对URL展换为给定的基URL的绝对URL
  • urllib.robotparser模块:一般来说,网站都会定义robots.txt文件,该文件主要用来规定网络爬虫爬取该网站时存在的限制。

5. 简述BeautifulSoup库的作用

BeautifulSoup是一个可以从HTML 或XML文件中提取数据Python库。BcautifulSoup 提供一些简单的Python式的函数用来处理导航、搜索、修改分析构等功能。它同时也是一个工具箱,通过解析文档为用户提供需要抓取的数据。统一将输出文档转换为utf- 8编码。

6. 常用网页更新策略

  • 历史参考策略——最直观:利用泊松过程来对网页的变化进行建模,根据每个网页过去的变动情况,利用模型预测将来何时内容会再次发生变化,以此来指导爬虫的抓取过程。
  • 用户体验策略:保存网页的多个历史版本,并根据过去每次内容变化对搜索质量的影响,得出一个平均值,以此作为判断爬虫重新抓取该网页时机的参考依据,对于影响越厉害的网页,则越优先调度重新抓取。
  • 聚类抽样策略:可以根据属性将网页归类,同一类别内的网页具有相同的更新频率。为了计算某个类别的更新周期,只需对类别内网页进行采样,以这些采样网页的更新周期作为该类别内所有网页的更新周期。

你可能感兴趣的:(数据采集与预处理技术考点复习——第五章)