爬虫 — 简介

目录

  • 一、简介
    • 1、概念
    • 2、分类
      • 2.1、通用网络爬虫(General Purpose Web Crawler)
      • 2.2、聚焦网络爬虫(Focused Web Crawler)
      • 2.3、增量式网络爬虫(Incremental Web Crawler)
      • 2.4、深层网络爬虫(Deep Web Crawler)
  • 二、URL 地址分析
    • 1、URL
    • 2、组成
      • 2.1、协议
      • 2.2、域名(Domain Name)
      • 2.3、端口(port)
      • 2.4、路径(path)
  • 三、基本流程
    • 1、导入模块
    • 2、指定 url
    • 3、发请求获取响应
  • 四、案例实践

一、简介

1、概念

是一种按照一定的规则自动地抓取万维网信息的程序或者脚本。

2、分类

2.1、通用网络爬虫(General Purpose Web Crawler)

爬取对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。

2.2、聚焦网络爬虫(Focused Web Crawler)

是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。

2.3、增量式网络爬虫(Incremental Web Crawler)

是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。

2.4、深层网络爬虫(Deep Web Crawler)

Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。

二、URL 地址分析

1、URL

在 WWW 上,每一信息资源都有统一的且在网上的地址,该地址就叫 URL(Uniform Resource Locator,统一资源定位器),它是 WWW 的统一资源定位标志,就是指网络地址

2、组成

协议 + 域名(端⼝默认80) + 路径 + 参数

在这里插入图片描述

2.1、协议

  • http(Hyper Text Transfer Protocol)

超文本传输协议,是一个简单的请求-响应协议,它通常运行在 TCP 之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

  • https(Hypertext Transfer Protocol Secure)

就是 http + ssl(Secure Socket Layer),是以安全为目标的 http 通道,在 http 的基础上通过传输加密和身份认证保证了传输过程的安全性

  • ssl 证书

就是数字证书的一种,配置在服务器上,所以也称之为 ssl 服务器证书。

特点:ssl 证书遵守了 ssl 协议,在应用层。是由信任的数字证书颁发机构验证身份之后颁发的证书。同时具有服务器身份验证和数据传输加密功能。

2.2、域名(Domain Name)

又称网域,是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于 IP 地址不方便记忆并且不能显示地址组织的名称和性质,人们设计出了域名。

2.3、端口(port)

可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。物理端口又称为接口,是可见端口。

2.4、路径(path)

表示主机上的⼀个目录或者文件地址

三、基本流程

1、导入模块

爬虫用到的模块是 requests 库,这个是第三方库,需要安装。

官方文档

终端安装命令:pip install requests

2、指定 url

爬虫 — 简介_第1张图片

3、发请求获取响应

发请求:就是浏览器向对应的网站服务器发消息。

方式

  • get

一般是去获取数据,参数会显示在地址栏,不安全,没有验证。

  • post

一般是提交数据,参数会放在 body 里面,安全,有验证。

获取响应:就是服务器接收到浏览器的要求,然后将浏览器响应的内容返回给浏览器。

四、案例实践

需求:爬取百度首页的网页源码

# 1. 导入模块
import requests  # 第三方库,用于 HTTP 请求和响应

# 2. 确定 url:分析是动态加载还是静态加载

爬虫 — 简介_第2张图片

打开开发者工具

在这里插入图片描述

  • Elements:元素,这个里面的内容就是网页显示的全部内容。
  • Console:调试 js 代码。
  • Sources:存放网站的资源文件,查看 Web 站点的资源列表,Javascript 代码的 debug ,也是用来调试 js 的。
  • Network:网络工作(信息抓包)能够看到很多的网页请求。

爬虫 — 简介_第3张图片

  • Headers:请求头
  • Preview:预览
  • Response:响应

分析是动态加载还是静态加载:
Ctrl + u 打开网站源码,如果网页中的数据在源码里能看到,就是静态加载,否则,就是动态加载。

# 1. 导入模块
import requests # 第三方库,用于 HTTP 请求和响应

# 2. 确定url:分析是动态加载还是静态加载
response = requests.get(" https://www.baidu.com/")
print(response) # 200 代表请求成功

状态码

  • 200:请求成功
  • 403:被服务器识别出来是程序在请求数据
  • 400:服务器找不到请求的网页,服务器的锅了

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'):手动解码,获取字符串类型的数据

记录学习过程,欢迎讨论交流,尊重原创,转载请注明出处~

你可能感兴趣的:(爬虫,爬虫,python)