热线电话:13121318867

登录
2019-01-15 阅读量: 754
域名解析有什么难点

DNS解析有一个重要的难点; 标准库中的查找实现(可能由开发爬虫的任何人使用)通常是同步的。这意味着一旦向域名服务发出请求,该节点上的其他爬网程序线程将被阻止,直到第一个请求完成为止。为了避免这种情况,大多数Web爬网程序将自己的DNS解析程序实现为爬网程序的一个组件。线执行解析器代码会向DNS服务器发送一条消息,然后执行定时等待:它会在被另一个线程发出信号或者设置的时间段到期时恢复。单个独立的DNS线程在标准DNS端口(端口53)上侦听来自名称服务的传入响应数据包。

收到响应后,它会发出相应的爬虫线程信号(在这种情况下并将响应数据包交给它还没有恢复,因为它的时间量已经到期。由于等待时间量已过期而恢复的爬网程序线程会重试固定次数,向DNS服务器发送新消息并每次执行定时等待; 墨卡托的设计师推荐五次尝试。等待的时间量随着这些尝试中的每一次呈指数增长; 墨卡托以一秒钟开始,大约90秒结束,考虑到主机名需要几十秒才能解决。

0.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子