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

Python爬虫——1爬虫基础(一步一步慢慢来)

一、爬虫是什么? (spider)

Python 爬虫是利用编程语言 Python 来获取互联网上的数据的技术。它可以自动化地访问网页、提取信息并进行数据处理。以下是Python爬虫的基础知识和步骤:

主要特点和功能:

  1. 自动化浏览:爬虫程序能够自动访问和浏览互联网上的各种网页,而无需人工干预。

  2. 信息抓取:爬虫根据预定的规则和算法,从网页的HTML源码中提取所需的数据。这些数据可以是文本、图片、视频、超链接等。

  3. 广泛应用:爬虫在搜索引擎索引网页、价格比较网站、新闻聚合、社交媒体分析等领域广泛应用。它们可以帮助自动化地收集和分析大量的数据。

工作原理:

  • 发送请求:爬虫首先向目标网站发送HTTP请求,请求特定的网页内容。

  • 获取响应:网站接收请求后,返回相应的HTML或XML等格式的页面数据。

  • 解析页面:爬虫利用解析器(如Beautiful Soup)分析和解释页面的结构和内容,以便定位和提取所需数据。

  • 存储数据:提取到的数据通常会被存储到文件、数据库或其他数据存储系统中,以备后续分析和使用。

应用举例:

  • 搜索引擎:爬虫帮助搜索引擎建立和更新网页索引,使得用户可以通过关键词搜索快速找到相关网页。

  • 价格比较:电商网站使用爬虫收集竞争对手的价格信息,帮助制定价格策略。

  • 新闻聚合:爬虫从多个新闻网站抓取新闻内容,形成一个汇总的新闻平台。

二、基础知识

1.URL:

URL(统一资源定位符)是用于标识和定位互联网上资源的地址。它是通过一种标准化的格式来描述网络资源的位置和访问方式。URL通常由多个部分组成,包括协议、域名或IP地址、路径、查询参数和片段等,具体格式如下:

scheme://host:port/path?query#fragment
https://mp.csdn.net/mp_blog/creation/editor?spm=1001.2014.3001.4503#本网站
  1. 协议(Scheme):指定访问资源所使用的协议或者服务类型。常见的协议包括:

    • http:超文本传输协议,用于传输网页数据。
    • https:安全超文本传输协议,使用SSL加密传输网页数据,更安全。
    • ftp:文件传输协议,用于在网络上传输文件。
  2. 主机(Host):指定资源所在的主机名或者IP地址。例如,www.example.com 或者 192.168.1.1

  3. 端口(Port,可选):指定访问资源时使用的端口号。大部分情况下,如果未指定,默认使用协议默认的端口(如HTTP默认端口为80,HTTPS默认端口为443)。

  4. 路径(Path,可选):指定服务器上资源的具体路径或者文件名。例如,/index.html

  5. 查询参数(Query,可选):传递给服务器的额外参数,通常以键值对的形式存在,多个参数之间使用 & 分隔。例如,?page=2&category=python

  6. 片段(Fragment,可选):标识资源中的一个片段或位置,通常用于直接定位到网页的某个部分。例如,#section2

URL被广泛用于网页浏览、API调用、文件下载等场景,是互联网上资源定位的标准方式。浏览器和各种网络应用程序通过解析和使用URL来访问并获取所需的网络资源。

三、前端代码

我们使用爬虫的时候会需要我们解析前端代码,我们使用爬虫时了解前端代码是必须的。

<!DOCTYPE html> 声明为 HTML5 文档
<html>..</html> 是网页的根元素
<head>..</head> 元素包含了文档的元(meta)数据,如 <meta charset="utf-8"> 定义网页编码格式为 utf-8。
<title>..<title> 元素描述了文档的标题
<body>..</body> 表示用户可见的内容
<div>..</div> 表示框架
<p>..</p> 表示段落
<ul>..</ul> 定义无序列表
<ol>..</ol>定义有序列表
<li>..</li>表示列表项
<img src="" alt="">表示图片
<h1>..</h1>表示标题
<a href="">..</a>表示超链接

四、合适的库

Python 中有许多强大的库可用于爬虫,其中最流行和常用的是 requestsBeautiful Soup(或 bs4)。

  • requests:用于发送HTTP请求,获取网页内容。

  • Beautiful Soup:用于解析HTML或XML文档,提取数据。
  • pip install requests 
    pip install Beautiful Soup

    执行以上命令载入库(win+r,输入cmd,输入执行)

相关文章:

Python爬虫——1爬虫基础(一步一步慢慢来)

一、爬虫是什么&#xff1f; &#xff08;spider&#xff09; Python 爬虫是利用编程语言 Python 来获取互联网上的数据的技术。它可以自动化地访问网页、提取信息并进行数据处理。以下是Python爬虫的基础知识和步骤&#xff1a; 主要特点和功能&#xff1a; 自动化浏览&#…...

【js自学打卡9】抛出异常 / 幂计算 / 发布订阅 / map小知识点

1. 抛出异常的写法 抛出一个简单的字符串错误 throw Error2; // 抛出一个字符串抛出一个Error对象 throw new Error(出错了&#xff01;);抛出一个自定义错误对象 function UserError(message) {this.message message;this.name "UserError"; } throw new User…...

ArcGIS Pro SDK (九)几何 7 多点

ArcGIS Pro SDK &#xff08;九&#xff09;几何 7 多点 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 7 多点1 构造多点 - 从映射点的枚举2 构造多点 - 使用 MultipointBuilderEx3 修改多点的点4 从多点检索点、2D 坐标、3D 坐标 环境&#xff1a;Visual Studio 2…...

服务器注意事项

1. 远程服务器不允许关机&#xff0c;只能重启&#xff1b; 2. 重启服务器应关闭服务&#xff1b; 3. 不要在服务器访问高峰运行高负载命令&#xff1b; 4. 远程配置防火墙是不要把自己踢出服务器&#xff1b; 5. 制定合理的密码规范并定期更新&#xff1b; 6. 合理分配权…...

学生信息管理系统设计

学生信息管理系统的设计是一个综合性的项目&#xff0c;涉及到数据的存储、检索、更新和删除等基本操作&#xff0c;同时也需要考虑系统的易用性、安全性和扩展性。以下是一些关键步骤和要素&#xff0c;用于指导设计这样一个系统&#xff1a; 1. 需求分析 目标用户&#xff…...

Python求均值,方差,标准差

参考链接&#xff1a;变异系数&#xff08;Coefficient of Variation,COV&#xff09;和协方差&#xff08;Covariance, Cov&#xff09;-CSDN博客 参考链接&#xff1a;pandas中std和numpy的np.std区别_numpy pandas std-CSDN博客 在计算蛋白质谱数据中的每个蛋白对应的变异…...

DDei在线设计器-HTML渲染

Html渲染 HtmlViewer插件通过将一个外部DIV附着在图形控件上&#xff0c;从而改变原有图形的显示方式。允许使用者自己定义HTML通过HTML元素。本示例演示了通过Html来扩展渲染图形&#xff0c;从而获得更加丰富的图形展现。 通常情况下&#xff0c;我们创建的图形控件&#xff…...

【React Hooks原理 - useSyncExternalStore】

概述 在React项目中说到状态管理&#xff0c;我们第一时间想到的就是使用useState、useReducer这种Hooks来进行状态管理。但是这种是针对React内部的状态&#xff0c;如果有时候我们需要订阅外部的状态并影响React组件的更新的话&#xff0c;那通过这种内部状态管理API显然不能…...

C++STL初阶(7):list的运用与初步了解

在了解了vector之后&#xff0c;我们只需要简单学习List与vector不一样的接口即可 1.list的基本接口 1.1 iterator list中&#xff0c;与vector最大的区别就是迭代器由随机迭代器变成双向迭代器 string和vector中的迭代器都是随机迭代器&#xff0c;支持-等&#xff0c;而LIS…...

el-menu弹出菜单样式不生效

1. 使用 ruoyi 项目时出现的问题。 <template><el-menu:default-active"activeMenu":collapse"false":unique-opened"true"class"container":collapse-transition"true"mode"horizontal"><sideba…...

Springboot 3.x - Reactive programming (2)

三、WebFlux Blocking Web vs. Reactive Web Blocking Web (Servlet) and Reactive Web (WebFlux) have significant differences in several aspects. 1. Front Controller Servlet-Blocking Web: Uses DispatcherServlet as the front controller to handle all HTTP req…...

WPF+Mvvm 项目入门完整教程(一)

WPF+Mvvm 入门完整教程一 创建项目MvvmLight框架安装完善整个项目的目录结构创建自定义的字体资源下载更新和使用字体资源创建项目 打开VS2022,点击创建新项目,选择**WPF应用(.NET Framework)** 创建一个名称为 CommonProject_DeskTop 的项目,如下图所示:MvvmLight框架安装…...

[解决方法]git上传的项目markdown文件的图片无法显示

应该有不少初学者会遇到这种情况 以下是本人摸索出的解决方法 我使用的是typora&#xff0c;首先设置typora的图片设置 文件>偏好设置>图像 如下&#xff1a; 选择这个就会在此文件的同级目录下创建一个assets文件夹来存放此markdown文件的所有图片 然后勾选优先使用相…...

【React】使用 antd 加载组件实现 iframe 的加载效果

文章目录 代码实现&#xff1a; import { Spin } from antd; import { useState } from react;export default function () {const [loading, setLoading] useState(true);return (<div style{{ position: relative, height: 100% }}><Spinstyle{{ position: absolu…...

Python爬虫(1) --基础知识

爬虫 爬虫是什么&#xff1f; spider 是一种模仿浏览器上网过程的一种程序&#xff0c;可以获取一些网页的数据 基础知识 URL 统一资源定位符 uniform resource locator http: 超文本传输协议 HyperText Transfer Protocol 默认端口 80 https: 安全的超文本传输协议 security…...

云原生系列 - Jenkins

Jenkins Jenkins&#xff0c;原名 Hudson&#xff0c;2011 年改为现在的名字。它是一个开源的实现持续集成的软件工具。 官方网站&#xff08;英文&#xff09;&#xff1a;https://www.jenkins.io/ 官方网站&#xff08;中文&#xff09;&#xff1a;https://www.jenkins.io…...

django踩坑(四):终端输入脚本可正常执行,而加入crontab中无任何输出

使用crontab执行python脚本时&#xff0c;有时会遇到脚本无法执行的问题。这是因为crontab在执行任务时使用的环境变量与我们在终端中使用的环境变量不同。具体来说&#xff0c;crontab使用的环境变量是非交互式(non-interactive)环境变量&#xff0c;而终端则使用交互式(inter…...

计算机网络入门 -- 常用网络协议

计算机网络入门 – 常用网络协议 1.分类 1.1 模型回顾 计算机网络细分可以划为七层模型&#xff0c;分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而上三层可以划为应用层中。 1.2 分类 1.2.1 应用层 为用户的应用进程提供网络通信服务&#xff0…...

【LabVIEW作业篇 - 4】:属性节点赋值和直接节点赋值的区别体现

文章目录 属性节点赋值和直接节点赋值的区别体现 属性节点赋值和直接节点赋值的区别体现 创建5个圆形指示灯&#xff0c;然后循环点亮&#xff0c;先给圆形指示灯赋值假变量&#xff0c;然后再进行循环。 运行结果&#xff0c;观察结果&#xff0c;发现刚开始运行时&#xff0…...

【数据库系列】Parquet 文件介绍

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【电源设计实战】反相BUCK-BOOST:从拓扑原理到PCB布局的完整设计指南

1. 反相BUCK-BOOST拓扑原理深度解析 第一次接触反相BUCK-BOOST电路时&#xff0c;我被它的"负压生成"特性深深吸引。这种拓扑就像电源界的"魔术师"&#xff0c;能把正电压巧妙地转换成负电压。在实际项目中&#xff0c;比如为运算放大器供电或驱动某些特殊…...

【Linux保姆级教程】curl命令最全用法详解

在Linux日常运维、后端开发、接口调试工作中&#xff0c;有一个命令几乎无人不知、无人不用&#xff0c;它就是curl命令。curl被称为网络传输瑞士军刀&#xff0c;无需打开浏览器&#xff0c;纯命令行即可发送网络请求&#xff0c;支持HTTP/HTTPS/FTP等数十种协议。不管是测试接…...

【Oracle数据库指南】第17篇:Oracle逻辑与物理存储结构——表空间、段、区、数据块全解析

上一篇【第16篇】Oracle连接模式与内存管理——专用服务器、共享服务器与AMM 下一篇【第18篇】Oracle数据库规划与前期准备——创建数据库前的系统工作 摘要 本文系统讲解Oracle数据库的存储结构体系&#xff0c;包括逻辑存储&#xff08;数据库→表空间→段→区→数据块&…...

搞懂这6个人工智能核心概念,再也不会被行业黑话难住

文章目录前言一、大模型&#xff08;LLM&#xff09;&#xff1a;读遍天下书的超级学霸1. 到底什么是大模型&#xff1f;2. 大模型的“超能力”与“致命缺陷”二、微调&#xff08;Fine-tuning&#xff09;&#xff1a;给学霸补专业课1. 微调到底在调什么&#xff1f;2. 2026年…...

用C8051F单片机自带的12位ADC,实现16位精度的温度测量(附完整代码)

基于C8051F单片机12位ADC实现16位温度测量的工程实践 在嵌入式系统开发中&#xff0c;高精度温度测量往往需要昂贵的16位ADC芯片&#xff0c;但通过合理的算法设计&#xff0c;我们可以利用C8051F系列单片机内置的12位ADC实现等效16位的测量精度。本文将深入探讨过采样技术的实…...

终极网盘直链下载助手完整指南:免费解锁八大平台高速下载

终极网盘直链下载助手完整指南&#xff1a;免费解锁八大平台高速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...

GPU加速网络爬虫:OpenCL异构计算在数据采集中的实践

1. 项目概述&#xff1a;一个面向硬件加速的开源抓取工具包最近在折腾一些数据采集和自动化任务时&#xff0c;我常常遇到一个瓶颈&#xff1a;当需要处理海量网页、进行高频次请求或者解析复杂的动态内容时&#xff0c;传统的基于CPU的抓取框架&#xff08;比如Scrapy、Reques…...

松下绿色科技战略:技术复用与协同效应如何驱动企业转型

1. 松下困局&#xff1a;消费电子巨头的十字路口2013年初的拉斯维加斯&#xff0c;消费电子展&#xff08;CES&#xff09;的喧嚣与霓虹之下&#xff0c;松下的时任社长津贺一宏站在聚光灯前&#xff0c;面对的却是一个冰冷而残酷的现实&#xff1a;公司预计将连续第二年录得高…...

别再只调API了!深入Qt QGraphicsView事件流,彻底搞懂拖拽缩放背后的‘为什么’

深入Qt QGraphicsView事件流&#xff1a;从拖拽缩放的底层机制到高效调试 在Qt的图形视图框架中&#xff0c;QGraphicsView、QGraphicsScene和QGraphicsItem构成了一个强大的交互系统。许多开发者虽然能够通过调用API实现基本功能&#xff0c;但当遇到事件被意外吞噬、坐标计算…...

观察taotoken在ubuntu高峰期调用时的稳定性与自动路由效果

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察 Taotoken 在 Ubuntu 高峰期调用时的稳定性与自动路由效果 1. 背景与测试环境 在日常的开发与调试工作中&#xff0c;我们经常…...