是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
爬取对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。
是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。
是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。
Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。
在 WWW 上,每一信息资源都有统一的且在网上的地址,该地址就叫 URL(Uniform Resource Locator,统一资源定位器),它是 WWW 的统一资源定位标志,就是指网络地址。
协议 + 域名(端⼝默认80) + 路径 + 参数
超文本传输协议,是一个简单的请求-响应协议,它通常运行在 TCP 之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
就是 http + ssl(Secure Socket Layer),是以安全为目标的 http 通道,在 http 的基础上通过传输加密和身份认证保证了传输过程的安全性。
就是数字证书的一种,配置在服务器上,所以也称之为 ssl 服务器证书。
特点:ssl 证书遵守了 ssl 协议,在应用层。是由信任的数字证书颁发机构验证身份之后颁发的证书。同时具有服务器身份验证和数据传输加密功能。
又称网域,是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于 IP 地址不方便记忆并且不能显示地址组织的名称和性质,人们设计出了域名。
可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。物理端口又称为接口,是可见端口。
表示主机上的⼀个目录或者文件地址。
爬虫用到的模块是 requests 库,这个是第三方库,需要安装。
官方文档
终端安装命令:pip install requests
发请求:就是浏览器向对应的网站服务器发消息。
方式:
一般是去获取数据,参数会显示在地址栏,不安全,没有验证。
一般是提交数据,参数会放在 body 里面,安全,有验证。
获取响应:就是服务器接收到浏览器的要求,然后将浏览器响应的内容返回给浏览器。
需求:爬取百度首页的网页源码
# 1. 导入模块
import requests # 第三方库,用于 HTTP 请求和响应
# 2. 确定 url:分析是动态加载还是静态加载
打开开发者工具
分析是动态加载还是静态加载:
Ctrl + u 打开网站源码,如果网页中的数据在源码里能看到,就是静态加载,否则,就是动态加载。
# 1. 导入模块
import requests # 第三方库,用于 HTTP 请求和响应
# 2. 确定url:分析是动态加载还是静态加载
response = requests.get(" https://www.baidu.com/")
print(response) # 200 代表请求成功
状态码
HTTP 状态码
# 1. 导入模块
import requests # 第三方库,用于 HTTP 请求和响应
# 2. 确定url:分析是动态加载还是静态加载
response = requests.get(" https://www.baidu.com/")
print(response) # 200 代表请求成功
print(response.text) # 内容获取
# response.text:返回字符串类型的数据
# response.content:返回字节流数据(二进制)
# response.content.decode('utf-8'):手动解码,获取字符串类型的数据
记录学习过程,欢迎讨论交流,尊重原创,转载请注明出处~