网站的三大特性:
1. 每一个资源都有一个url(统一资源定位符),是唯一的
2. 每一个网页都是使用HTML文本展示数据的
3. 通过http或https(超文本传输协议),去获取和传递HTML源码
如何实现一个爬虫
1. 找到目标url
2. 根据url发起请求
3. 解析响应结果
1. 提取目标数据
2. 如果存在新的url,进一步提取(会执行1-3这个循环)
4. 爬虫结束:所有符合条件的url请求全部获取完毕。
爬虫分为两类:
通用爬虫:是浏览器的重要组成部分,将互联网上所有的网页下载到本地,做了一个本分
提取重要数据(过滤数据,分词,去广告等等。。。)步骤跟上面的介绍类似
搜索引擎的爬去的url通过什么方式获取的??
1. 通过网站的外链
2. 通过网页提交url
3. 各大搜索引擎公司也会和DNS服务商合作
DNS:将域名转换成ip的技术
通用爬虫的缺点:
需要遵循robots协议
搜索引擎发挥的结果没有很好的针对性,不能够特殊的用户群体返回对应的数据
搜索引擎一般情况下获取的是文本信息,处理图像,音频,视频多媒体还是困难的。
聚焦爬虫:是面向主题的爬虫(有需求产出的),是一种定向的爬虫,在爬去网页数据的时候,会对网页筛选,保证抓取相关徐数据,以后更多的聚焦爬虫
判断页面静态或动态
是否静态:进入源码搜索内容有为静
是否动态:结果不变不停的获取数据(ajax)/ 源码中没有数据
找到数据:进入Network 中的XHR
Preview预览
可以使用selenium(获取页面源码是经过浏览器渲染后的最终结果)
请求头:
User-Agent:模拟浏览器加载
Cookies:携带cookies第一可以维持回话,告诉浏览器用户身份信息
Referer:告诉浏览器,当前请求,是从哪个页面发起的。
urlopen参数:
url : 设定目标url
data=None:默认为None表示是个get请求;如果不为None,表示一个post请求
timeout:指定超时时间
cafile=None:可以指定证书文件(一般情况下用不到这个参数)
capath=None:指明整数路径
cadefault=False:是否要使用默认的证书
context=None:赋值则表示忽略来认证的ssl证书