关于网络爬虫
网络爬虫 ( spider 或 web crawler ),是一种可以“自动”浏览万维网的网络机器人,许多的搜索入口网站 ( 例如 Google ),都会透过网络爬虫收集网络上的各种信息,进一步分析后成为用户搜索的数据,许多开发者也会自行开发不同的爬虫程序,进行大数据收集与分析的动作。
静态网页爬虫
静态网站是指网站完成一个请求 ( request ) 与回应 ( response ) 后,用户端即不再与服务器有任何的交流,所有的互动都只与浏览器的网页互动,信息不会传递到后端服务器。
通常静态网站爬虫比较容易实作,只要爬虫已经阅读完整份网页,就可以取得这个网页所有的信息进行分析 ( 如同去餐厅吃饭点了餐,餐送上来之后就可以慢慢品尝 )。
动态网页爬虫
动态网站是指网站会依照用户的行为不断的与服务器进行交流,例如传送了 apple 信息给服务器,信息经过服务器处理后,才会回应 apple 是甜的、红的、脆的...等相关信息,不少动态网站甚至需要进行“登录”的动作,像是 Facebook、Instagram...等。
通常动态网站爬虫实作比较复杂,爬虫必须要知道网站需要什么“信息”,提供了正确的信息,才能取得所需要的数据 ( 如同打开保险箱一般,输入了正确的密码,才能打开保险箱的内容 )。
使用爬虫有什么好处与应用?
网络爬虫可以透过过程序“自动抓取”网站数据,所以能够取代许多纯人工手动取得数据的过程,大幅节省时间,以下列举几种相关的应用:
- 取得天气信息
- 取得股票价格、汇率
- 下载网页所有图片
- 取得最新 Youtube 影片清单
- 取得论坛最新文章与信息
- 比较不同网站,找出最划算的票价
- 定期监测特定商品价格
使用爬虫的礼仪
单纯使用网络爬虫并不违法,但如果过度使用网络爬虫,造成服务器过大的负担,或者透过爬虫搭配骇客技术来攻击网站,就有可能因此违法,所以在使用网络爬虫时,需要注意相关的礼仪:
不造成网站服务器的负担
每次爬取数据时,设定适当的等待延迟,避免短时间内送出大量的请求而造成服务器的负担 ( DDoS 攻击,根据刑法第 360 条可能会触法 )。
确认网站是否有提供 API
如果网站有提供 API 供第三方直接取得数据,可以直接透过 API 抓取数据,节省读取与分析网站 HTML 的时间。
注意 robots.txt
robots.txt 会规范一个网站允许什么样的 User-Agent 访问,也会规范 Crawl-delay 访问间隔时间,如果 Crawl-delay 设定 1,表示这个网站期望每次访问的时间间隔一秒钟。
微信扫码关注
抖音扫码关注