python爬虫的基本原理

简介: 1.什么是爬虫网络爬虫,请求网站并提取数据的自动化程序2.爬虫基本流程 发起请求 获取响应内容 解析内容 保存数据


1.什么是爬虫

网络爬虫,请求网站并提取数据的自动化程序

2.爬虫基本流程

   发起请求

   获取响应内容

   解析内容

   保存数据

3.什么是Request和Response?

image.png

4.Request中包含什么

   请求方式

   主要有Get,POST两种类型

   另外还有HEAD,PUT,DELETE,OPTIONS等

   请求URL

   URL全称统一资源定位符,如一个网页文档、一张图片、一个视频等都可以用URL唯一来确定。

   请求头

   包含请求时的头部信息,如User-Agent,Host,Cookies等信息

   请求体

   请求时额外携带的数据

   如表单提交时的表单数据

5.Response中包含什么

   响应状态

   有多种响应状态,如200代表成功,301代表跳转,404找不到页码,502服务器错误

   响应头

   如内容类型,内容长度,服务器等信息,设置Cookie等待

   响应体

   最主要的部分,包含了请求资源的内容,如网页HTML,图片二进制的数据等

import requests
response = requests.get("http://www.baidu.com")
print(response.text)
print(response.headers)
print(response.status_code) #响应体
headers = {'User-Agent':
    '''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36\
    (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'''}
response = requests.get("http://www.baidu.com", headers = headers)

6.能抓怎样的数据

   网页文本

   如HTML文档,Json格式文本等

   图片

   获取到的是二级制文件,保存为图片格式

   视频

   同为二进制文件,保存为视频格式即可。

   其它

   只要是能请求到的,都能获取

7.怎样来解析

   直接处理

   Json解析:weibo

   正则表达式

   BeautifulSoup

   PyQuery

   Xpath

8.为什么我抓到的和浏览器看到的不一样

网页源代码是js渲染之后的代码,所以和我们抓到的代码不一样

9.怎样解决JavaScript渲染的问题

   分析Ajax请求

   Selenium/WebDriver:获得源代码与网页一样

   Splash

   PyV8,Ghost.py

怎样保存数据?

   文本

   纯文本,Json,Xml等

   关系型数据库

   如MySQL,Oracle,SQL Server等具有结构化表结构形式存储。

   非关系型数据库

   如MongoDB,Redis等Key-Value等形式村相互

   二进制文件

   如图片,视频,音频等等直接保存成特定格式即可


相关文章
|
5天前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
62 0
|
5天前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
5天前
|
数据采集 网络协议 API
协程+连接池:高并发Python爬虫的底层优化逻辑
协程+连接池:高并发Python爬虫的底层优化逻辑
机器学习/深度学习 算法 自动驾驶
83 0
|
14天前
|
数据采集 存储 Web App开发
处理Cookie和Session:让Python爬虫保持连贯的"身份"
处理Cookie和Session:让Python爬虫保持连贯的"身份"
|
16天前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
18天前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
18天前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
212 2
|
20天前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
83 0
|
23天前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
212 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码

推荐镜像

更多