爬虫的基本概念
•按照一定的规则,自动地抓取万维网信息的程序或者脚本
常见的爬虫分类
•通用网络爬虫
•爬取对象从一些种子URL 扩充到整个Web,主要为门户站点搜索引擎和大型Web 服务提供商采集数据)
•聚焦网络爬虫
•又称主题网络爬虫(TopicalCrawler),是指选择性地爬取那些与预先定义好的主题相关页面的网络信息
•增量式网络爬虫
•对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面
大多数个人开发者,所做的爬虫均为后两种。其中,聚焦网络爬虫也成为垂直网络爬虫,根据定制化的需求去抓取所需数据。
垂直型爬虫及爬取步骤
•垂直型爬虫关注特定主题内容或者属于特定行业的网页或者指定的网站和内容
•url-crawling(链接抓取页面) :确定抓取页面相关信息
•info-crawling(信息抓取) :爬虫抓取信息
•format&fusion(规整与聚合) :对所抓信息进行清洗
爬虫常用工具
1、wireshark:强大的网络协议录制查看软件,用于分析爬虫请求过程中的交互数据
2、httpwatch:浏览器插件,记录浏览器中的http请求
3、
fiddler:单独软件,记录并检查所有你的电脑和互联网之间的http通讯
4、RegexBuddy:正则式验证处理工具(
RegexTester)
5、firebug:浏览器自带开发者工具,
如
Chrome
可按
F12,监控浏览器请求
爬虫的工具用途,主要就是用于监控http通信请求的信息。从工具中得到这些信息后,我们可以在代码里模拟浏览器发送请求。
开发爬虫常用方法
•
1.采用浏览器控件webbrowser
使用webbrowser控件加载网页,用MSHTML来操控整个网页,进行模拟操作数据(selenium,casperjs,nodejs,htmlunit等)。
优点:开发起来比较简单。
缺点: 由于需要加载整个页面,缺点是速度慢、效率不高,内存占用大,难以做成多线程并发。
•2.基于Http请求
使用Http协议,分析页面的 Get/Post动作 (HttpClient ,Jsoup, HttpUtil 等)
优点:速度快,效率搞,内存占用小,容易做成多线程并发。
缺点: 开发难度大,需要详细的分析页面的css、js、cookie等等。
•3.基于浏览器内核开发(高手中的高手才用)
使用浏览器内核开发,推荐使用Webkit
优点: 这种方式比较灵活,可以根据自己的需求添加功能
缺点: 对程序员要求比较搞,需要掌握很多基础知识,以及了解浏览器内核,需要看大量的英文文档