携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情
随着网络技术应用的急速发展,百姓获取信息的途径和手段也是层出不穷,网络爬虫则是一种获取信息的重要手段,所谓爬虫就是指在网络上通过各种网页链接爬来爬去以获取信息,从网页的某一个链接开始找到连接其他网页的页面,并且记录下页面中的内容。网络爬虫就是通过这一思想来遍历其他网站,其功能实现需要使用多种技术相互应用,如:在多线程技术的加持下可以提高网页爬取的效率、通过DNS缓存技术可以减轻爬虫过程中对DNS访问的频率,从而提高爬取速率。由于网页信息的多样性(新闻、视频、电子图书、图片等),爬虫还需要对爬取的信息进行识别与分类以提取出需要的信息。
爬虫基本架构
网络爬虫爬取页面结构如图所示:
(1)已下载页面:表示目前已经完成了从互联网加载到计算机本地的网页集
(2)待下载页面:处于待爬取URL队列中的网页,这些页面即将被爬取
(3)可知网页:是指当前还没有被爬虫爬取的网络网页内容,并且也尚未加入到待下页面队列中,但是这些网络页面内容可以被爬取。
同时这些网页是通过那些已经爬取过的网络页面或者待爬取网络页面中的链接被发现的,之后会进行爬取。
(4)未知页面:这些网络页面是无法被爬取到的,这部分网页聚合成未知网络页面,通常这部分网络页面比例非常高
设计原理和思路
首先通过调用基于Python语言开发的Request库向网页进行模拟请求,通过对消息头文件进行配置即可伪装成浏览器进行访问,再通过调用BeautifulSoup函数库从html网页中解析出页面中的数据,将每一页的url加入到待下载队列中,对每一个任务都进行遍历,最终得到的结果又是以jasn的格式保存在form data表单里,将表单里的信息发送给后端最终写入文件里保存,其特点是处理速度很快,代码简便,解析效率高效,流程如图所示。