能写爬虫(spider)的编程有:
java,c,c++,python,php
php:多线程支持不好
c,c++:难
java:做的还可以,就是代码多一点
python: 语法比java简单,但是速度不够快
爬虫的分类:
1:通用爬虫:
平常用的搜索引擎都是通用爬虫,
原理:
- 抓取网页
通过爬虫抓取网站:
-
主动提交url(统一资源定位符)
-
设置友情链接
-
与DNS服务商合作
-
采集数据
-
数据处理
-
提供检索服务
检索排名:
竞价排名
格局pagerank值,访问量,点击量(SEO)
robots.txt(robots协议):限制爬虫,知道谁在爬,是否允许爬取,能爬取什么,但是是口头协议(大公司遵从),可以不遵从.
2:聚焦爬虫(代替游览器上网):
根据特定的需求抓取指定的数据
知道网页的特点:
1.网页有自己唯一的url
2.网页内容都是html格式的
3.使用的都是http,https协议
爬取步骤:
1.给一个url
2.写程序,模拟游览器访问url
3.解析内容,提取数据
用到的库:
urllib,requests,bs4...
解析内容的知识:
正则表达式,bs4,xpath,jsonpath
涉及到动态html
selenium+phantomjs,chromeheadless
srapy框架:
高性能框架的使用
scrapy-redis组件:
redis (数据库,存储数据),分布式爬虫(多个电脑同时爬取)
涉及爬虫-反爬虫--反反爬虫:
UA(游览器类型),代理,验证码,动态的页面(通过执行js文件加载)
http协议(双方规定的传输形式)
http://www.cnblogs.com/10158wsj/p/6762848.html
响应模式: 客户端发送请求给服务器 —> 服务器做出回应
工作流程:
1.客户端与服务器建立连接,只要单击某个超级链接,http开始工作
2.建立连接后,发送请求,请求格式: URL,协议版本号,MIME信息,请求修饰符,客户端信息和可能内容
3.服务器给予相应的响应信息,其格式为一个状态行,包括信息协议。。。
4.客户端接受服务器所返回的信息,通过游览器显示出来,断开连接
http:明文发生,没有任何加密
https:在http的基础上加入了ssl协议,ssl依靠证书来验证服务器的身份,并为游览器和服务器之间的通信加密
公钥,私钥
加密: 密钥 解密: 密钥
对称性加解密(公钥(私钥)加密,公钥(私钥)解密),非对称性加密(公钥加密私钥解密)