当前位置: 首页 > news >正文

【爬虫】- 爬虫原理及其入门

爬虫01 - 爬虫原理及其入门

文章目录

  • 爬虫01 - 爬虫原理及其入门
    • 一:爬虫原理
      • 1:爬虫的优势‌
      • 2:爬虫的核心库
      • 3:经典举例
      • 4:合规问题

一:爬虫原理

学习爬虫之前前置知识需要了解这些:

我的HTTP介绍, 了解如何调用,requests需要

我的html介绍, 了解html结构

我的css介绍,了解选择器部分, 因为要用bs4选择对应位置的内容

所谓爬虫,就是通过模拟浏览器行为向目标网站发送请求(HTTP/HTTPS),解析响应内容并提取所需数据,最终存储到本地或数据库

  1. 请求数据(构造HTTP请求(GET/POST)获取网页内容)
  2. 解析数据(通过正则表达式、XPath或解析库(如BeautifulSoup)提取目标信息)
  3. 存储数据(将结果保存为CSV、Excel或数据库(如MySQL、MongoDB)

1:爬虫的优势‌

  • 丰富的库支持‌:Requests(HTTP请求)、BeautifulSoup/Scrapy(解析)、Selenium(动态渲染)等库简化开发流程。
  • ‌语法简洁高效‌:Python代码可读性强,适合快速实现复杂逻辑。
  • ‌生态成熟‌:社区活跃,反爬解决方案和开源项目资源丰富。

2:爬虫的核心库

在这里插入图片描述

pip install requests
pip install beautifulsoup4 # 注意这个是4版本的
pip install selenium
pip install scrapy

3:经典举例

举一个简单的top250首页电影的评分和电影名

import requests
from bs4 import BeautifulSoup# 1:构建请求,通过request先获取到对应的HTML/XML
url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0"}response = requests.get(url, headers=headers)# 准备使用bs4进行解析,下面将使用find, find_all进行解析
soup = BeautifulSoup(response.text, "html.parser")movies = []
# 对于找到的所有的item进行解析
for item in soup.find_all("div", class_="item"):title = item.find("span", class_="title").textrating = item.find("span", class_="rating_num").textmovies.append({"title": title, "rating": rating})for index, movie in enumerate(movies):print(f"{index + 1}. {movie['title']} - {movie['rating']}")

4:合规问题

在这里插入图片描述

http://www.lryc.cn/news/585201.html

相关文章:

  • 提示工程:突破Transformer极限的计算科学
  • 进程状态 + 进程优先级切换调度-进程概念(5)
  • 需求升级,创新破局!苏州金龙赋能旅游客运新生态
  • 20250711荣品RD-RK3588开发板在Android13下的开机自启动的配置步骤
  • 宝塔命令Composer 更改数据源不生效
  • 动态组件和插槽
  • 基于定制开发开源AI智能名片与S2B2C商城小程序的旅游日志创新应用研究
  • nessus最新安装
  • [Meetily后端框架] Whisper转录服务器 | 后端服务管理脚本
  • 20.缓存问题与解决方案详解教程
  • NodeJs后端常用三方库汇总
  • 录音实时上传
  • 2025河南高考生物真题及解析
  • 国际学术期刊IJCAST发布最新一期论文
  • 【达梦数据库|JPA】后端数据库国产化迁移记录
  • uniapp类似抖音视频滑动
  • [python]在drf中使用drf_spectacular
  • 持续集成 简介环境搭建
  • STM32G473串口通信-USART/UART配置和清除串口寄存器状态的注意事项
  • Rail开发日志_5
  • 基于Selenium和FFmpeg的全平台短视频自动化发布系统
  • Maven下载与配置对Java项目的理解
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (三)RISC-V架构深度解剖(下)
  • SpringBoot 使用注解获取配置文件中的值
  • c/c++拷贝函数
  • Claude Code是什么?国内如何使用到Claude Code?附国内最新使用教程
  • FlashBots 之 MEV-boost
  • 决策树算法在医学影像诊断中的广泛应用
  • 用Python和OpenCV从零搭建一个完整的双目视觉系统(六 最终篇)
  • CentOS 安装 Redis 简明指南