爬虫的三大特征:
- 网页都有自己唯一的URL(统一资源定位符)来进行定位
- 网页都是用HTML(超文本标记语言标记)描述页面信息。
- 提取HTML页面里有用的数据: 1、如果是有用的数据就存起来
- 2、如果是页面里有其它URL,就进行下一步
可以做爬虫的语言 PHP、Java、C/C++、python
python 语法优美、代码间接、开发效率高、支持的模块多,还有强大的Scrapy、以及成俗搞笑的Scrapy-redis分布式框架
====================================================================
Http页面抓取:urllib、urllib2、requests
处理后的请求可以模拟流浪器发送请求,获取服务器相应的文件
解析服务器响应的内容:re、xpath、BeautifulSoup 、bs4、jsonpath、pyquery
采集动态HTML、验证码处理
通用的动态页面采集:Selenium+PhantomJS(无界面)模拟真实浏览器js,ajax动态数据
Tesseract:机器图片识别系统、机器学习库
Scrapy框架:(Scrapy,Pyspider)
高定制性能(异步网络框架twisted),下载速度非常快。提供数据存储、数据下载、提取规则等组件
分布式策略:
Scrapy-redis 再原基础上添加了一套以Redis,数据库为核心组件,主要在Redis里做请求指纹去重,请求分配,数据临时存储
======================================================================
爬虫--反爬虫--反反爬虫之间的斗争:
User-Agent、代理、验证码、动态加载、数据加密
通用爬虫:搜索引擎用的爬虫系统
:把互联网网页所有的网页下载下来放在本地,在对这些网页做相关的处理(处理关键词,广告),再提供一个接口
抓取流程:
a》首选取一部分已有的URL,吧这些URl放到待爬取的队列
b》从队列里取出这些URL,然后解析DNS得到IP。(ip地址不一定有域名),然后去这个ip对应飞度武器里下载HTML页面,保存到搜索引擎的本地服务器,之后吧这个爬过的URL的URL放到已爬取的队列
c》分析这些网页内容,找出网页里其它的URL链接,继续执行第二步,直到爬取结束
通用爬虫并不是所有网站东西都可以爬取,他也需要遵守Robots.txt协议
DNS:就是把域名解析成IP的一种技术
Robots并不是所爬虫都遵守,一般只有大型的搜索引擎爬虫才会遵守,robots只是一个建议
搜索引擎排名:
1、pageRnk值:根据网站流量(点击量/点击人气、流浪量)统计,流量越高,搜索排名越靠前
2、竞价排名:谁给的钱多,谁排名就高
通用爬虫缺点:
1、只能提供和文本相关的内容(HTML、WORD、PDF)
2、但是不能提供多媒体音乐、图片、视频和二进制文件(程序、脚本无法获取)
3、提供的结果千篇一律,不能这怒地不同背景领域的人提供不同的搜索结果
不能理解人类语义的检索
聚焦爬虫:爬虫程序员写的针对某种内容爬虫。
面向主体爬虫,面向需求爬虫、会针对某种特定的内容爬取信息,而且并保证内容和信息相关。

浙公网安备 33010602011771号