Python网络爬虫系列1
什么是网络爬虫
英语可以称为spider或者webcrawler,是一种用来自动浏览万维网的网络机器人。
简单说:
通过编写程序,模拟浏览器上网,然后去互联网上抓取数据资源的过程。
互联网包含着各种海量的信息。出于数据分析或产品需求,我们需要从某些网站,提取出我们感兴趣、有价值的内容,我们需要一种能自动获取网页内容并可以按照指定规则提取相应内容的程序,这就是爬虫。浏览网页的过程在浏览器输入网址,经过DNS服务器,找到服务器主机IP。向服务器发出一个TCP请求,建立TCP连接。发起Http或者Https请求。Web服务器经过处理后,返回给用户的浏览器HTML、JS、CSS等文件浏览器渲染浏览器根据页面内容,生成DOMTree。根据CSS内容,生成CSSRuleTree(规则树)。调用JS执行引擎执行JS代码。根据DOMTree和CSSRuleTree生成RenderTree(呈现树)。根据RenderTree渲染网页。
在浏览器解析页面内容的时候,发现页面引用了其他未加载的image、css文件、js文件等静态内容,进行静态资源加载。用途数据分析人工智能数据作为社交软件冷启动舆情监控竞争对手监控爬虫分类通用爬虫
抓取系统重要组成部分,抓取的是一整张页面数据聚焦爬虫
是建立在通用爬虫的基础之上,抓取的是页面找那个的特定的局部内容。增量式爬虫
检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据。反爬机制
爬虫访问网站的过程会消耗目标系统资源。不少网络系统并不默许爬虫工作。因此在访问大量页面时,爬虫需要考虑到规划、负载,还需要讲礼貌。不愿意被爬虫访问、被爬虫主人知晓的公开站点可以使用robots。txt文件之类的方法避免访问。相关门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。
具体例如:请求次数限制,UA识别,验证码,IP限制等待。robots。txt协议
规定了网站中哪些数据可以被爬虫爬取,哪些数据不可以被爬取。