爬虫基础

大数据时代:数据如何产生?

1、大的公司打的企业:通过用户产生的数据
2、大的数据平台:通过收集或者和其他的企业或者公司合作
3、国家政府 大的机构:通过省县乡或者其他方式统计汇总产生的
4、数据咨询公司:通过收集或者和其它企业或者公司合作,会根据数据做分析对比形成报表
5、最终假如以上方式都不能满足的时候,我们就需要一个爬虫工程师,去专门坐数据的提取

1:什么是爬虫?

就是一段自动获取互联网数据的程序

2 爬虫有什么用途?

搜索引擎
比价工具(慧慧购物助手)
大的咨询网站(今日头条,jobbole)

网站的三大特性:

1.每一个资源都有一个url(统计资源定位符)
2,网页都是使用HTML(超文本)文本展示数据的
3,通过HTTP/HTTPS(超文本传输协议),获取和传递HTML

3 如何实现一个爬虫

(1)找到目标url
(2)根据url发起请求
(3)解析响应结果: (a)提取目标数 (b)如果存在新的url 进一步提取(会执行1-3这个循环)
(4)爬虫结束:所有符合条件的url请求全部获取完毕 意味着爬虫结束

4 为什么要使用python做爬虫?

PHP,JAVA,C,C++,Python...都可以做爬虫
 PHP:可以用来做爬虫,但是对于多任务的支持不是太好,爬虫是对效率要求比较高的,所以说PHP天生不是干这个事情的
 JAVA:生态圈很完善,并且用途非常广泛(后端,移动端)java做爬虫是python最大的竞争对手 但是java代码量比较大,重构的成本比较高
 
 C/C++:肯定是可以完成爬虫这件事的,并且运行的效率是非常高的,但是学习的门槛非常高,各个模块可能需要你自己封装和定制,(能使用C/C++的人一般比较nb)
 Python:语法简介 代码优美 可读性高 并且对各模块的支持比较好 有很多强大的三方包 对于多任务的处理比较好 urllib,requests都能够很好的帮助我们实现一个爬虫项目 
 对解析库也非常多(lxml,bs4,pyquery...)并且还有强大的scrapy爬虫框架和scrapy_redis分布式爬虫框架 并且python作为一门胶水语言 对于其他语言的调度也是非常方便的

爬虫分为两类:

通用爬虫:通用爬虫是浏览器的重要组成部分 将互联网上所有的网页下载到本地 做了一个镜像备份 提取重要数据(过滤数据 分词 去广告...)
步骤其实跟上面介绍的类似
搜索引擎的爬取的url通过上面方式获取?
1 通过网站的外链
2 通过网页提交url (百度:http://zhanzhang.baidu.com/linksubmit/url)
3 各大搜索引擎公司也会和DNS服务商合作
=
DNS:将我们的域名转化为ip的一种技术
通用爬虫(搜索引擎)的特点:
1需要遵循robot协议:Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
2.搜索引擎返回的结果千篇一律没有很好的针对性 不能够根据特殊的用户群体返回对应的数据
3.搜索引擎一般情况下获取的是文本信息,处理图像,音频,视频多媒体还是有困难的,
聚焦爬虫:是面向主题的爬虫,由需求产生的,是一种定向的爬虫,在爬取网页数据的时候进行一些筛选,保证抓取和需求相关的数据,以后我们更多的就是实现聚焦爬虫

做爬虫需要掌握的基本基本知识

1.python的基本语法
2.前端的知识
3.数据持久化的知识
4.了解基本的反爬手段(header请求头,验证码,cookies,代理)
5.静态页面和动态页面(ajax,js),selenium(获取的页面源码是经过浏览器渲染之后的最终结果)
6.多任务处理,爬虫框架分布式爬虫等等
HTTP:超文本传输协议,主要是使用HTML文本传输到本地浏览器
HTTPS:作用和HTTP一致,只是多了SSL(安全套接字)保证数据传输的安全性
1.建立一个安全有效的数据传输通道,保证数据安全性
2.保证网站真实性和有效性

URL的组成部分:

1.scheme:协议
2.host:指的是域或者ip
3.port:端口
4.path:资源路径
5.query-string:请求参数
6.anchor:锚点,主要实现页面的定位

你可能感兴趣的:(爬虫基础)