数据如何产生?
1.大公司,大企业:通过用户产生
2.大的数据平台:通过收集或者其他企业或者公司合作
3.国家或政府机构:通过省县乡或者其他方式统计汇总产生
4.数据咨询公司:通过收集或者其他企业或者合作公司,会根据数据做分析对比形成报表,给你做参考
- 以上方式都用不上的情况下就要用到爬虫
什么是爬虫?
1.自动获取网页的数据
爬虫有什么用途?
1.搜索引擎
网站的三大特性:
每一个资源都有一个url(资源定位符),是唯一的
网页都是使用HTML(超文本)展示数据的
通过HTTP/HTTPS(超文本传输协议),获取和传递HTML
如何实现一个爬虫?
找到目标url
根据url发起请求
解析响应结果:提取目标数据;如何存在新的url,需要进一步提取(会执行1-3这个循环)
爬虫结束:所有符合条件的url请求全部获取完毕,意味着爬虫结束
为什么要使用python做爬虫?
Python:语法简洁,代码优美,可读性比较高,并且对各模块的支持比较好,有很多强大的三方包,对多任务的处理也比较好,urllib,request都能够很好的帮助我们实现一个爬虫项目,解析的库也非常多(lxml,bs4, pyquery...),并且还有强大的scrapy爬虫框架和scrapy_redis分布式爬虫框架,并且python作为一门胶水语言,对于其他语言的调度也是非常方便的。
爬虫分为两类:
通用爬虫:通用爬虫是浏览器的重要组成部分,将互联网上所有的网页下载到本地,做了一个镜像备份,提取重要数据(过滤数据,分词,去广告等等...); 步骤跟上面的类似 搜索引擎的爬取的url通过什么方式获取的? 一. 通过网站的外链 二. 通过网页提交url:(百度:<u>http://zhanzhang.baidu.com/linksubmit/url)</u> 三. 各大搜索引擎公司也会和DNS服务商合作 通用爬虫的缺点:需要遵守robot协议(爬虫协议,机器人协议);搜索引擎返回的结果千篇一律没有很好的针对性,不能够对特殊的用户群体返回对应的数据;搜索引擎一般情况下获取的是文本信息,处理图像,音频,视频多媒体还是有困难的
聚焦爬虫: 是面向主题的爬虫,由需求产生的,是一种定向的爬虫,在爬取网页数据的时候,会对网页数据进行一些筛选,保证只抓取和需求相关的数据
做爬虫需要掌握的基本知识:
Ø Python的基本语法
Ø 前端知识
Ø 数据持久化的知识(数据库,文件储存)
Ø 了解基本的反爬虫的手段(header请求头,验证码,cookie,代理)
Ø 静态页面和动态页面(Ajax,js,selenium(获取的页面源码是经过浏览器渲染之后的最终结果))
Ø 多任务处理,爬虫框架,分布式爬虫等等
HTTP:超文本传输协议,主要使用来将html文件传输到本地浏览器
HTTPS:作用和HTTP一致,只是多了SSL(安全套接字),保证数据传输的安全性:
a. 建立一个安全有效的数据传输通道,保证数据的安全性
b. 确定网站的安全性和有效性
- url组成部分: 基本格式:scheme://host[:port#]/path/…/[?query-string][#anchor]
· scheme:协议(例如:http, https, ftp)
· host:服务器的IP地址或者域名
· port#:服务器的端口(如果是走协议默认端口,缺省端口80)
· path:访问资源的路径
· query-string:参数,发送给http服务器的数据
· anchor:锚(跳转到网页的指定锚点位置)
请求头: User-Agent: 模拟浏览器加载 Cookies: 携带cookies第一可以维持会话,告诉浏览器用户的身份信息 Refere: 告诉浏览器当前请求是从哪个页面发起的
常见的状态吗: 100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。 200~299:表示服务器成功接收请求并已完成整个处理过程。常用200(OK 请求成功)。 300~399:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、 常用302(所请求的页面已经临时转移至新的url)、 307和304(使用缓存资源)。 400~499:客户端的请求有错误,常用404(服务器无法找到被请求的页面)、403(服务器拒绝访问,权限不够),401(未认证)。 500~599:服务器端出现错误,常用500(请求未完成。服务器遇到不可预知的情况)。