有的时候提取URL的时候不一定按照队列“先进先出”的方式来进行遍历,而是将某些重要的URL先遍历,这种策略称为“页面选择”(Page Selection)。这种策略可以有效地照顾重要性高的网页。


1.网页重要性高的因素

链接的欢迎度:
主要由反向链接(backlinks,指向当前URL的链接)的数量和质量决定,我们定义为IB(P);
链接的重要度:
这是一个关于URL富川的函数,仅仅考察字符串本身,例如,我们认为“.com”和“home”的URL重要度比“.cc”和”map”高,我们定义为IL(P);
平均链接的深度:
跟读宽度优先的原则计算出全站的平均链接深度,然后认为距离种子站点越近的重要性越高。我们定义为ID(P);
如果我们定义一个网页的重要性为I(P),那么由下面的公式所决定:

I(P)=X*IB(P)+Y*IL(P)

其中X和Y两个参数用来调整IB(P)和IL(P)所占的比例的大小,ID(P)由宽度优先的遍历规则保证,因此不作为重要的指标函数。

例子

假设下图中节点的重要性排序为D>B>C>A>E>F>I>G>H。

TODO优先级队列 Visited表
A
DBCEF A
BCEF AD
CEF ADB
EF ABDC
FH ABDCE
GH ABDCEF
H ABDCEFG
I ABDCEFGH
ABDCEFGHI

《自己动手写网络爬虫》笔记4-带偏好的网络爬虫相关推荐

  1. 自己动手写Docker学习笔记

    零.前言 本文为<自己动手写 Docker>的学习,对于各位学习 docker 的同学非常友好,非常建议买一本来学习. 书中有摘录书中的一些知识点,不过限于篇幅,没有全部摘录 (主要也是懒 ...

  2. 自己动手写Docker系列 -- 6.3 手动配置容器网络(下)

    简介 网络部分较为复杂,本篇先利用之前写好的基础容器和网桥部分,加上手工给容器配置网络,让其容器与外部网络部分功能正常,为后面程序编写打下基础 源码说明 同时放到了Gitee和Github上,都可进行 ...

  3. 【无标题】自己动手写Docker系列 -- 6.3 手动配置容器网络(上)

    简介 网络部分较为复杂,本篇先利用之前写好的基础容器和网桥部分,加上手工给容器配置网络,让其容器与宿主机网络部分功能正常,为后面程序编写打下基础 源码说明 同时放到了Gitee和Github上,都可进 ...

  4. 李沐动手学深度学习笔记---含并行连结的网络 GoogLeNet / Inception V3

    Inception块:  Inception块由四条并行路径组成.前三条路径使用窗口大小为1 × 1.3 × 3和5 × 5的卷积层, 从不同空间大小中提取信息.中间的两条路径在输入上执行1 × 1卷 ...

  5. 爬虫笔记(一)——第一个爬虫

    最近对爬虫比较感兴趣,就在csdn上的电子书里找了本爬虫书(Python网络爬虫从入门到实践 第2版)学学看,顺便做下笔记. 注意:我们不管是在学习爬虫或者以后使用爬虫,都要遵守爬虫协议,也就是Rob ...

  6. python爬虫动态加载页面_python3的爬虫笔记8——动态加载页面爬虫

    其实大部分主流网站都不是静态的html,html和Javascript相结合已经是大势所趋. 本篇以花瓣网主页为例子. 花瓣网主页,右键查看网页源代码,获得的页面是这样的: 如果还是用之前静态页面的那 ...

  7. python3爬虫框架scrapy_带你深入浅出python爬虫框架scrapy(三)

    接下来我们要讲解爬取一些较难的数据评论: 1. 在Item中定义自己要抓取的数据: movie_name就像是字典中的"键",爬到的数据就像似字典中的"值".在 ...

  8. 爬虫笔记8实例淘宝商品比价爬虫

    这个也不错 import requests import re def getHTMLText(url):headers = {'cookie': 'miid=1296267545453648768; ...

  9. Python 网络爬虫笔记11 -- Scrapy 实战

    Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

  10. Python 网络爬虫笔记1 -- Requests库

    Python 网络爬虫笔记1 – Requests库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyt ...

最新文章

  1. 关于OpenGL环境配置问题(2015)
  2. python限制输入值范围_求python 中if 里如何设定一个值的范围
  3. python 9.13作业
  4. Google和IMAX放弃VR相机
  5. 【bzoj3160】万径人踪灭
  6. ServiceStack.Text反序列化lowercase_underscore_names格式的JSON
  7. CPU,MPU,MCU,SOC,SOPC联系与差别
  8. php怎么传json数据_php和js如何通过json互相传递数据相关问题探讨
  9. splitlines
  10. 年回报60%!孙正义如何经营“沉迷AI”的愿景基金?
  11. POJ-1328 Radar Installation 贪心
  12. C++ 进阶——object slicing 与虚函数与dynamic_cast
  13. 云痕大数据 家长登录_智学网家长学生查分入口:www.zhixue.com
  14. 从iRedMail 创建用户脚本学习PostgreSQL数据库
  15. qq说说时间轴php实现,QQ说说时间 qq说说时间轴
  16. table中tr:hover无效 td:hover有效
  17. 【Rust日报】2022-10-12 国内物联网芯片厂商发布世界上第一款 rust 芯片支持库
  18. 项目总是延期令人头疼?Tracup帮你做好项目进度管理
  19. Android之黄油刀(butterknife)
  20. Mac键盘和Windows键盘对应表

热门文章

  1. 《Dive Into Deeping Learing》学习笔记:深度学习基础
  2. 基于单片机的智能照明控制系统设计
  3. delphi 分析抓取html,delphi网页数据抓取
  4. LMC555定时器延时测试
  5. 三星帝国的风险:四大业务同荣同损
  6. 如何下载谷歌地球高程为TIF格式的文件
  7. 脑电时频分析II:时频分析
  8. 笔记本电池续航测试软件,电池续航测试和试用总结
  9. C# Color颜色RGB对照表
  10. 编程珠玑 啊哈 算法