网络爬虫简介
什么是爬虫:
通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。
爬虫究竟是合法还是违法的:
在法律中是不被禁止
具有违法风险
爬虫也分为善意爬虫和恶意爬虫
爬虫带来的风险可以体现在两方面:干扰了被访问者的正常运营或者是抓取到了法律保护的特定类型的数据或者信息。例如:用户信息,身份号,电话号码之类的。
爬虫在使用场景中的分类:
通用爬虫:
抓取系统重要组成部分。抓取的是一整张页面数据。
聚焦爬虫:
是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。
增量式爬虫:
检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。
既然可以对门户网站抓取数据,门户网站也会制定一些反爬机制,有反爬机制那么也就会有反反爬策略:
UA检测:
判断是浏览器发起请求还是编码软件发起请求,如果是后者就拒绝其访问。通常通过构建UA池随机获取User-Agent进行访问。
IP限制:
如果访问者的频率太高,就会对访问者的IP进行限制。通过自己构建I代理IP池,随机获取代理IP进行解决。一般来说网上所提供的免费代理可用率稳定性都不高,这时候只能购买付费代理或者买服务器做拨号代理。
验证码:
验证码限制,一般来说识别验证码通过调用打码平台解决,例如超级鹰。滑动验证码就得使用selenium模块解决。
cookie限制:
由于http协议是无状态的,即它不会保存你的登陆信息。即使你保存了cookie如果访问超过限制也会被拒绝访问,构建cookie池动态调用即可解决。
动态渲染页面:
即网页数据是动态加载的不能直接获取网页的源码数据。解决方法:selenium+splash解决
robots.txt协议:
君子协议。规定了网站中哪些数据可以被爬虫爬取哪些数据不可以被爬取。