python—爬虫的初步了解

news2024/12/22 19:24:08

Python 爬虫(Web Scraping)是一种自动化从网站上提取数据的技术。Python 由于其简洁的语法、丰富的库和强大的社区支持,成为了实现网络爬虫的首选语言之一。下面是一些Python爬虫的基本概念和步骤:

1. 爬虫的基本概念

  • 请求(Request):爬虫向服务器发送的请求,通常包括URL、HTTP方法(如GET、POST)、请求头等。
  • 响应(Response):服务器对爬虫请求的回应,包含请求的网页内容(HTML、JSON等)、状态码(如200表示成功)、响应头等。
  • 解析(Parsing):从响应内容中提取需要的数据。这通常涉及到HTML或JSON的解析。
  • 存储(Storing):将提取的数据保存到数据库、文件或其他存储系统中。

2. Python 爬虫的基本步骤

确定目标:明确要爬取的网站和数据。
发送请求:使用Python的库(如requests、urllib)向目标网站发送HTTP请求。
获取响应:接收服务器返回的响应内容。
解析内容:使用HTML解析库(如BeautifulSoup、lxml)或JSON解析库(Python内置的json模块)来解析响应内容,提取所需数据。
数据存储:将提取的数据保存到文件、数据库或其他存储介质中。
异常处理:添加异常处理逻辑,确保爬虫的稳定性和健壮性。
遵守规则:遵守robots.txt协议和网站的使用条款,不要对网站造成过大压力。

3. 常用的Python库

  • requests:用于发送HTTP请求。
  • BeautifulSoup:用于解析HTML和XML文件,提取数据。
  • lxml:另一种HTML和XML解析库,速度比BeautifulSoup快。
  • json:Python内置的库,用于解析JSON数据。
  • re:Python内置的库,用于正则表达式匹配。
  • pandas:用于数据处理和分析,方便地将数据保存到CSV或Excel文件中。
  • Scrapy:一个快速高级的Web爬虫框架,用于爬取网站并从页面中提取结构化的数据。

4.爬虫相关知识

  • URL:统一资源定位符 uniform resource locator

bdce42aed53c6987a10545ea9e6a1e6.png
http: 超文本传输协议 HyperText Transfer Protocol 默认端口 80

https: 安全的超文本传输协议 security 默认端口 443
www.example.com 域名
/path/to/myfile.html 资源路径

  • 前端代码
<!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>表示超链接
<!DOCTYPE html>
<html>
    <head>
        <!-- 内嵌样式 -->
        <style type="text/css">
        body{
            background-color:yellow;
        }
        p{
            font-size: 30px;
            color: springgreen;
        }
        </style>
        <meta charset="utf-8">
        <title>红米煮粥</title>
    </head>
    <body>
        <a href="www.anhuisjxy.com">点击访问</a>
        <h1>红米煮粥www.anhuisjxy.com</h1>
        <h2>Python爬虫</h2>
        <div>
            <p>认识网页结构</p>
            <ul>
                <li>HTML</li>
                <li>CSS</li>
            </ul>
        </div>
    </body>
</html>
<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
        body{
            background-color: rgb(220, 226, 226);
        }
        </style>
        <meta charset="utf-8">
        <title>红米煮粥</title>
    </head>
    <body>
        <h1 style="color: blue;">红米煮粥www.anhuisjxy.com</h1>
        <h2>Python爬虫</h2>
        <p>点击下方按钮获取当前时间</p>
        <button onclick="DisplayDate()">点击这里</button>
        <p id="time" style="color: red;"></p>
        <!-- script标签内部编写js代码 -->
        <script>
            function DisplayDate(){
            document.getElementById("time").innerHTML=Date()
            }
        </script>
        </div>
    </body>
</html>

5.爬虫相关包的下载

  • 安装requests,lxml包
pip install requests
  • pip 换源
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/
pip config set install.trusted-host pypi.mirrors.ustc.edu.cn
  • User-Agent: 身份标识 表示你是哪个浏览器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1936894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE:Spring Web简单小项目实践三(留言板实现)

学习目的&#xff1a; 1、理解前后端交互过程 2、学习接口传参&#xff0c;数据返回以及页面展示 目录 1、准备工作 2、约定前后端交互接口 1、获取全部留言 2、发表新留言 3、实现服务器端代码 4、调整前端页面代码 5、运行测试 1、准备工作 创建SpringBoot项目&#x…

WebRTC音视频-环境搭建

目录 期望效果 1:虚拟机和系统安装 2:WebRTC客户端环境搭建 2.1&#xff1a;VScode安装 2.2&#xff1a;MobaXterm安装 3:WebRTC服务器环境搭建 3.1&#xff1a;安装openssh服务器 3.2&#xff1a;安装Node.js 3.3&#xff1a;coturn穿透和转发服务器 3.3.1&a…

构建高效Node.js中间层:探索请求合并转发的艺术

&#x1f389; 博客主页&#xff1a;【剑九 六千里-CSDN博客】 &#x1f3a8; 上一篇文章&#xff1a;【CSS盒模型&#xff1a;掌握网页布局的核心】 &#x1f3a0; 系列专栏&#xff1a;【面试题-八股系列】 &#x1f496; 感谢大家点赞&#x1f44d;收藏⭐评论✍ 引言&#x…

阿里云 https证书部署

一.申请证书 二.查看状态 查看状态&#xff0c;已签发是完成了申请证书 三.部署 我在nginx服务器上部署 具体操作链接:阿里云文档 修改前 修改后 四.重启ngnix 五.验证是否成功 在浏览器输入域名查看

maven 私服搭建(tar+docker)

maven私服搭建 一、linux安装nexus1、工具下载 二、 docker 搭建nexus1、镜像下载创建目录2、运行nexus3、访问确认&#xff0c;修改默认密码&#xff0c;禁用匿名用户登录4、创建仓库5、创建hostd仓库6、创建Blob Stores7、创建docker私服1、创建proxy仓库2、创建hotsed本地仓…

Qt自定义下拉列表-可为选项设置标题、可禁用选项

在Qt中,ComboBox&#xff08;组合框&#xff09;是一种常用的用户界面控件,它提供了一个下拉列表,允许用户从预定义的选项中选择一个。在项目开发中&#xff0c;如果简单的QComboBox无法满足需求&#xff0c;可以通过自定义QComboBox来实现更复杂的功能。本文介绍一个自定义的下…

144. 字典序最小的 01 字符串(卡码网周赛第二十六期(23年阿里淘天笔试真题))

题目链接 144. 字典序最小的 01 字符串&#xff08;卡码网周赛第二十六期&#xff08;23年阿里淘天笔试真题&#xff09;&#xff09; 题目描述 小红有一个 01 字符串&#xff0c;她可以进行最多 k 次提作&#xff0c;每次操作可以交换相邻的两个字符&#xff0c;问可以得到的…

C++的STL简介

0.STL简介 C的STL&#xff08;Standard Template Library&#xff0c;标准模板库&#xff09;是C标准库的一部分&#xff0c;它提供了一套通用的类和函数模板&#xff0c;用于处理数据结构和算法。STL的主要组件包括&#xff1a; 容器分配器算法迭代器适配器仿函数 容器 容…

制造运营管理系统(MOM系统),企业实现先进制造的关键一步

随着全球制造业的快速发展&#xff0c;企业对于生产效率和成本控制的要求日益增高。在这个背景下&#xff0c;制造运营管理系统&#xff08;MOM系统&#xff09;成为了企业提升竞争力的关键工具。盘古信息作为业内领先的智能制造解决方案提供商&#xff0c;其MOM系统更是以其卓…

作为爬虫工程师,在封装API时如何做得更好

在数据驱动的时代&#xff0c;爬虫工程师的角色日益重要。他们不仅是数据的收集者&#xff0c;更是数据的桥梁构建者&#xff0c;通过编写高效、稳定的爬虫程序&#xff0c;将互联网上的海量信息转化为有价值的数据集。而在这一过程中&#xff0c;API&#xff08;应用程序接口&…

最小二乘求待定位点的位置(三维环境)|MATLAB

前言 之前发过三点法求待测点位置的程序讲解&#xff0c;哪个是二维的&#xff0c;见&#xff1a;基于伪逆的三点法距离求位置&#xff0c;MATLAB源代码&#xff08;MATLAB函数&#xff09; 这里给出三维情况下的函数和测试代码。对于函数&#xff0c;输入已知锚点的位置、待…

唐山养老院哪家好---守护晚年幸福,用服务引领老年人高品质养老生活

随着社会的快速发展和人口老龄化趋势的加剧&#xff0c;老年人对养老机构的需求日益增长&#xff0c;选择养老机构作为养老方式已成为许多老年人的必然选择。随着年龄的增长&#xff0c;生理功能的退化和疾病风险的增加&#xff0c;使得老年人更加需要专业的医疗照护和日常生活…

无人机的发展前景大吗?

随着科技的飞速发展&#xff0c;无人机&#xff08;Unmanned Aerial Vehicle, UAV&#xff09;作为一种新兴的航空器&#xff0c;已逐渐从军事领域渗透到民用领域。无人机的应用广泛&#xff0c;包括但不限于航拍、物流配送、环境监测、农业植保、应急救援等多个领域。本文旨在…

神经网络之卷积神经网络

目录 一、卷积神经网络概述&#xff1a;1.卷积层&#xff1a;1.1卷积核与神经元&#xff1a;1.2卷积层作用&#xff1a;1.3多通道概念&#xff1a; 2.池化层&#xff1a;2.1池化层作用&#xff1a; 3.隐藏层与卷积层、池化层关系&#xff1a; 一、卷积神经网络概述&#xff1a;…

Nginx部署前端项目尝试 - windows版

前端还是要学一点服务器端的东西&#xff0c;才能更好的理解一些知识 1、项目打包 生成dist 2、下载nginx解压&#xff0c;start nginx 启动 浏览器输入 localhost 显示如下页面表示启动成功 3、配置nginx server {listen 8080;# ip 不要加http 前后不要加 /server_name…

LeetCode做题记录(第二天)169. 多数元素

题目&#xff1a;169. 多数元素 标签&#xff1a;数组 哈希表 分治 计数 排序 题目信息&#xff1a; 思路一&#xff1a; 在题目中出现了计数&#xff0c;那我们就可以直接考虑考虑使用哈希表 unordered_map 即遍历的时候记录每个数的出现次数&#xff0c;当出现次数大于n/…

无法启动此程序,因为计算机丢失api-ms-win-core-path-l1-1-0.dll的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Qt实现仿微信在线聊天工具(服务器、客户端)V1_ 04

上一篇实现了客户端与服务器的通信,这一篇继续实现相关功能 本章内容 服务器与数据库的连接通信格式的规范登录信息的验证 1.数据库的建立 这里连接的是Mysql8.0数据库,如果想要简单点可以直接用sqlite3数据库,调用逻辑基本差不多,数据库语法也基本一致。 在服务器工程里…

puzzle(0611)《组合+图论》追捕问题

目录 一&#xff0c;追及问题 1&#xff0c;警察和小偷 2&#xff0c;旋转的4个硬币 3&#xff0c;抓狐狸 二&#xff0c;围堵问题 三&#xff0c;追及围堵 一&#xff0c;追及问题 1&#xff0c;警察和小偷 如下图&#xff0c;警察先走&#xff0c;警察和小偷轮流一人…

ubuntu 更新源

前言 实现一键替换在线源 一键更新源 ubuntu 全球镜像站以下支持现有ubuntu 20&#xff0c;22&#xff0c;24 echo "Delete the default source" rm -rf /etc/apt/sources.listecho "Build a new source" cat <<EOF>>/etc/apt/sources.li…