爬虫基本原理及requests库用法

文章目录

  • 一、爬虫基本原理
  • 二、requests基本原理及使用
    • [1、chrome 抓包按钮详解](#1、chrome 抓包按钮详解)
      • [1.1 Elements](#1.1 Elements)
      • [1.2 元素定位器](#1.2 元素定位器)
      • [1.3 Network](#1.3 Network)
      • [1.4 All](#1.4 All)
      • [1.5 XHR](#1.5 XHR)
      • [1.6 Preserve log](#1.6 Preserve log)
      • [1.7 手机模式](#1.7 手机模式)
      • [1.8 清空数据包](#1.8 清空数据包)
      • [1.9 Filter](#1.9 Filter)
      • [1.10 Search](#1.10 Search)
      • [1.11 Search all file](#1.11 Search all file)
    • 2、requests介绍
      • [2.1 概念](#2.1 概念)
      • [2.2 安装方式](#2.2 安装方式)
      • [2.3 基本使用](#2.3 基本使用)
      • [2.4 response类对应的方法](#2.4 response类对应的方法)
        • [2.4.1 获取网页源代码:](#2.4.1 获取网页源代码:)
        • [2.4.2 获取二进制数据【音乐,视频,图片】](#2.4.2 获取二进制数据【音乐,视频,图片】)
        • [2.4.3 获取响应状态码【基本不用】](#2.4.3 获取响应状态码【基本不用】)
        • [2.4.4 获取json数据【常用】](#2.4.4 获取json数据【常用】)
      • [2.5 headers的请求](#2.5 headers的请求)

一、爬虫基本原理

1、什么是爬虫

通俗: 解放人的双手, 去互联网获取数据, 保存数据[数据库, txt, excel, csv, pdf, 压缩文件, image, video, music]

本质: 模拟浏览器, 向服务器发送网络请求, 接受服务器返回的数据, 保存数据

2、爬虫的分类

A、通用爬虫: 百度, google, 搜狗 ... 搜索引擎

B、聚焦爬虫: 根据指定的目标, 获取数据, 保存数据

3、网址的构成

例如:https://www.baidu.com/s?ie=utf-8\&f=8\&rsv_bp=1\&tn=baidu\&wd=李智恩

A、协议部分:https / http -- 超文本传输协议

B、域名部分:www.baidu.com -- ip地址--<外壳>--域名【方便人的记忆】

C、路径部分:一层一层的信息

D、参数部分:请求时候, 携带必要参数 -- &符号链接

4、爬虫的基本步骤

A、准备网址

B、请求网址

C、解析数据

D、保存数据

5、动态【异步】页面和静态【同步】页面

A、打开浏览器

B、访问网址

C、网页空白处右键点击,查看网页源代码

D、在网页源代码中搜索网页所展示的部分(如果能搜到,则是静态网页;如果搜不到,则是动态网页)

6、请求头

A、cookies: 身份标识(登录网站之后会有一段cookies值)

B、反爬字段: referer -- 来源于哪个网站

C、浏览器标识: user-agent(用户代理)

二、requests基本原理及使用

1、chrome 抓包按钮详解

1.1 Elements

网页源代码展示

1.2 元素定位器

使用元素定位器,可以准确定位网页所展示的部分,对应的前端代码

1.3 Network

网络调试台,可以用于抓包

1.4 All

使用All抓包时,会显示所有的包

1.5 XHR

使用XHR抓包时,只会显示AJAX包,也称为动态数据包,一般用于抓取动态加载的数据

1.6 Preserve log

是否需要保存历史抓包记录,点亮后即为保存历史记录

1.7 手机模式

是否选择手机模式,进行页面访问,一般用于手机抓包

1.8 清空数据包

将当前数据包进行清空,方便更准确的抓取数据包

1.9 Filter

过滤查询,requests_headers

搜索文本内容所在的包

搜索文本内容所在的包

2、requests介绍

2.1 概念

非常强大的爬虫请求库, 解决日常90%爬虫

2.2 安装方式

pip install requests

2.3 基本使用

  1. 导包: import requests
  2. 使用: respone = requests.get(url, 反爬请求头)

2.4 response类对应的方法

2.4.1 获取网页源代码:

A、text

B、content.decode()

2.4.2 获取二进制数据【音乐,视频,图片】

content

2.4.3 获取响应状态码【基本不用】

response.status_code

200: 请求成功

2.4.4 获取json数据【常用】

网站数据很多都是json数据, 做一件事情: json --> 字典

python 复制代码
A、response = requests.get(url).text
   response = json.loads(response)
python 复制代码
B、response = requests.get(url).json()

2.5 headers的请求

headers请求头的作用是对爬虫进行伪装,headers的格式是字典,示例如下:

python 复制代码
headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
        }

其中添加的请求头参数个数,可以根据实际需求添加

相关推荐
APIshop1 天前
Python 爬虫获取 item_get_web —— 淘宝商品 SKU、详情图、券后价全流程解析
前端·爬虫·python
AC赳赳老秦1 天前
Python 爬虫进阶:DeepSeek 优化反爬策略与动态数据解析逻辑
开发语言·hadoop·spring boot·爬虫·python·postgresql·deepseek
泡泡以安1 天前
【爬虫教程】第7章:现代浏览器渲染引擎原理(Chromium/V8)
java·开发语言·爬虫
Dragon水魅1 天前
Fandom Wiki 网站爬取文本信息踩坑实录
爬虫·python
Benny的老巢1 天前
基于Playwright TypeScript/JavaScript的API调用爬虫成熟方案
javascript·爬虫·typescript·自动化·agent·playwright
搂着猫睡的小鱼鱼1 天前
基于Python的淘宝评论爬虫
开发语言·爬虫·python
嫂子的姐夫1 天前
010-sha1+base64:爬虫练习网站
爬虫·python·逆向
泡泡以安1 天前
【爬虫教程】第6章:DNS解析优化与代理池架构
爬虫·架构
小白学大数据1 天前
Redis 在定时增量爬虫中的去重机制与过期策略
开发语言·数据库·redis·爬虫
嫂子的姐夫1 天前
012-AES加解密:某勾网(参数data和响应密文)
javascript·爬虫·python·逆向·加密算法