爬虫
爬虫?
什么是爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人), 是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
简单来说:就是一个爬取web或者app数据的程序,他又名数据采集。
获取数据几种途径
爬虫的作用
- 数据分析
- 购物助手
- 咨询网站
- 搜索引擎
爬虫需要知识
- Python 基础知识
- HTML 基础知识
- 数据持久化知识
- Scrapy框架知识

爬虫的分类
-
通用爬虫
- 不管什么样的诗剧都给你爬下来

- 通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
- 不管什么样的诗剧都给你爬下来
-
聚焦爬虫
- 聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于:
-
不同
- 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。
爬虫的流程
1、定位url的时候,要简单处理一下URL的参数
2、分析URL的参数(参数的变化)
3、发生请求
4、解析数据
web 共同点
- 1、每个网页都有唯一的URL(资源定位符)
- 2、网页一定是html css js 组成的
- 3、网页数据通过htpp https传输的
Robots协议
全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,
例如:https://www.jd.com/robots.txt
虚拟环境
Python虚拟环境搭建和使用Ubuntu下配置virtualenv和virtualenvwrapper
一、安装环境
sudo pip3 install virtualenv -i https://pypi.douban.com/simple/
二、安装virtualenvwrapper
sudo pip3 install virtualenvwrapper -i https://pypi.douban.com/simple/
三、配置
- sudo vim ~/.bashrc
export WORKON_HOME=/home/ljh/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5
source /usr/local/bin/virtualenvwrapper.sh
- source ~/.bashrc
四、创建虚拟环境
mkvirtualenv testlev
五、切换虚拟环境
workon testlev
六、关闭虚拟环境
deactivate testlev
七、删除虚拟环境
rmvirtualenv testlev
http和https
-
HTTP协议
- 中文名叫超文本传输协议: 是用于从网络传送超文本数据到本地浏览器的传送协议
-
HTTPS协议
- 简单讲是HTTP的安全版,在HTTP协议的基础上加入SSL层(HTTP+SSL) 。 SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。
-
端口
- HTTP的端口号为80, HTTPS的端口号为443
-
SSL
- HTTPS的安全基础是SSL,因此通过它可以传输的内容都是经过SSL加密的
- 建立一个安全有效的信息传送通道,保证数据传送的安全性
- 确定网站的真实性和有效性
- HTTPS的安全基础是SSL,因此通过它可以传输的内容都是经过SSL加密的
-
请求与响应
-
1.域名解析 -->
2.发起TCP的3次握手 -->
3.建立TCP连接后发起http请求 -->
4.服务器响应http请求,浏览器得到html代码 -->
5.浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) -->
6.浏览器对页面进行渲染呈现给用户.
-

-
-
URL
- 统一资源定位符,是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。
- 组成 https://book.qidian.com/info/1004608738#Catalog
- scheme:协议
- host:服务器的IP地址或者域名
- port:服务器的端口
- path:访问资源的路径
- query-string:参数
- anchor:锚
-
请求方法
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hl0hVQj2-1591600818041)(http://tp.jikedaohang.com/20191028104547_VK4hEO_Screenshot.jpeg)]
-
常用请求头
-
Accept:指定客户端能够接收的内容类型。
-
Accept-Charset :浏览器可以接受的字符编码集。
-
Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型。
-
Accept-Language:浏览器可接受的语言。
-
Accept-Ranges:可以请求网页实体的一个或者多个子范围字段。
-
AuthorizationHTTP:授权的授权证书。
-
Cache-Control:指定请求和响应遵循的缓存机制。
-
Connection:表示是否需要持久连接。(HTTP 1.1默认进行持久连接)
-
CookieHTTP:请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
-
Content-Length:请求的内容长度。
-
Content-Type:请求的与实体对应的MIME信息。
-
Date:请求发送的日期和时间。
-
Expect:请求的特定的服务器行为。
-
From:发出请求的用户的Email。
-
Host指定请求的服务器的域名和端口号。
-
If-Match只有请求内容与实体相匹配才有效。
-
If-Modified-Since如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码。
-
If-None-Match如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变。
-
If-Range如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。
-
If-Unmodified-Since只在实体在指定时间之后未被修改才请求成功。
-
Max-Forwards限制信息通过代理和网关传送的时间。
-
Pragma用来包含实现特定的指令。
-
Proxy-Authorization连接到代理的授权证书。
-
Range只请求实体的一部分,指定范围。
-
Referer先前网页的地址,当前请求网页紧随其后,即来路。
-
TE客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息。
-
Upgrade向服务器指定某种传输协议以便服务器进行转换(如果支持。
-
User-Agent 是否是浏览器。
-
Via通知中间网关或代理服务器地址,通信协议。
-
Warning关于消息实体的警告信息
-
-
响应头
-
Accept-Ranges表明服务器是否支持指定范围请求及哪种类型的分段请求。
-
Age从原始服务器到代理缓存形成的估算时间(以秒计,非负)。
-
Allow对某网络资源的有效的请求行为,不允许则返回405。
-
Cache-Control告诉所有的缓存机制是否可以缓存及哪种类型。
-
Content-Encodingweb服务器支持的返回内容压缩编码类型。。
-
Content-Language响应体的语言。
-
Content-Length响应体的长度。
-
Content-Location请求资源可替代的备用的另一地址。
-
Content-MD5返回资源的MD5校验值。
-
Content-Range在整个返回体中本部分的字节位置。
-
Content-Type返回内容的MIME类型。
-
Date原始服务器消息发出的时间。
-
ETag请求变量的实体标签的当前值。
-
**Expire:**响应过期的日期和时间。
-
Last-Modified请求资源的最后修改时间。
-
Location用来重定向接收方到非请求URL的位置来完成请求或标识新的资源。
-
Pragma包括实现特定的指令,它可应用到响应链上的任何接收方。
-
Proxy-Authenticate它指出认证方案和可应用到代理的该URL上的参数。
-
refresh应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)
-
Retry-After如果实体暂时不可取,通知客户端在指定时间之后再次尝试。
-
Serverweb服务器软件名称。
-
Set-Cookie设置Http Cookie。
-
Trailer指出头域在分块传输编码的尾部存在。
-
Transfer-Encoding文件传输编码。
-
Vary告诉下游代理是使用缓存响应还是从原始服务器请求。
-
Via告知代理客户端响应是通过哪里发送的。
-
Warning警告实体可能存在的问题。
-
WWW-Authenticate表明客户端请求实体应该使用的授权方案。
-
-
状态码
- 200 - 请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 302 - 资源(网页等)被临时转移到其它URL
- 401 - 未授权
- 403 - 禁止访问
- 408 - 请求超时
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
- 503 - 服务器不可用
本文深入讲解了网络爬虫的基本概念,包括爬虫的定义、作用、所需知识、分类及流程。探讨了数据获取的多种途径,如用户产生的数据、数据平台购买等。同时,文章详细解释了web的共同特性、Robots协议、Python虚拟环境搭建,以及http和https协议的区别。
2721

被折叠的 条评论
为什么被折叠?



