一、理清步骤

1、获取网页内容(比如向浏览器询问请求,浏览器返回经过渲染处理的问题答案,美化页面,使用户清晰明了;而程序向网页发送请求得来的是较为原始的不经加工的纯数据,比较原生裸露庞大碎片复杂)

学习:HTTP请求、python requests、HTML网页解读

HTTP请求:GET请求(获取数据,爬虫常用)、POST请求(提交数据)

【请求行】 GET /index.html HTTP/1.1
【请求头】 Host: www.example.com
          User-Agent: Mozilla/5.0 (Windows NT 10.0)
          Accept: text/html
          Cookie: session_id=abc123
【请求体】 (GET 通常为空,POST 放提交的数据)

host:www.example.com 我要访问的网址

User-Agent 用户的个人信息

Accept 用户要获取的信息

(爬虫就是模拟人为浏览网站获取信息)

HTTP响应:

【状态行】 HTTP/1.1 200 OK
【响应头】 Content-Type: text/html; charset=utf-8
          Content-Length: 1234
          Set-Cookie: session_id=abc123; Path=/
          Server: nginx/1.18.0
          Date: Wed, 25 Jun 2026 07:11:00 GMT
【空行】
【响应体】 <!DOCTYPE html>
          <html>
            <head><title>百度一下</title></head>
            <body>...</body>
          </html>

状态行:

HTTP/1.1 200 OK
  ↑      ↑   ↑
协议版本  状态码 状态描述

状态码:

状态码 含义 通俗解释 你的应对
200 OK 😊 一切正常,你要的数据在包里 直接拆包取数据
301 Moved Permanently 🏠 搬家了,去新地址 requests 自动跳转
302 Found 🏠 临时去别的地方 同上,注意新 URL
400 Bad Request ❌ 你的请求格式错了 检查参数、URL
401 Unauthorized 🔒 没登录,不许看 加 Cookie/Token
403 Forbidden 🚫 认出你是爬虫,拒绝 换 Headers、代理、降速
404 Not Found 🔍 页面不存在 检查 URL 拼写
500 Internal Server Error 💥 服务器自己崩了 等会儿再试
502 Bad Gateway 🚪 网关挂了 服务器问题,换时间
503 Service Unavailable 😴 服务器太忙/维护 Retry-After 头里有等待时间

响应头:告知客户端的一些信息

响应体:服务器想给客户端的一些内容

python requests命令行:A、终端下载requests库 pip install requests

              B、代码段:import requests>>headers={“User-Agent”:任意网站的粘贴过来}(右键,检查,网络,User-Agent)

              C、response=requests.get(网址,headers=headers)

              D、print(response.text/status_code)status_code查看状态码,出现200则可以text在终端返回HTMP网页源码                          

2、解析网页内容(对返回的庞大数据进行提取,得到你想要的数据:如想比较商品价格只需提取价格数据,而剔除评价、商家、品牌)

学习:HTML网络结构、beautifulsoup库

HTLM网页解读

HTML 标签 文章中的对应 作用
<html> 整篇文章 告诉浏览器"这是一篇网页"
<head> 文章封面信息(标题、作者、日期) 浏览器需要知道,但读者不直接看到
<body> 文章正文 读者在页面上看到的内容
<h1> 大标题 最重要的标题
<p> 段落 正文内容
<a> 引用/链接 点击跳转到别处
<img> 插图 显示图片
<div> 章节/区块 把内容分组
<table> 表格 行列数据

<!DOCTYPE html>           <!-- 声明:这是 HTML5 文档 -->
<html lang="zh-CN">       <!-- 整篇网页的开始,语言是中文 -->
  
  <head>                  <!-- 头部:浏览器看的"元信息" -->
    <meta charset="UTF-8">  <!-- 编码:防止中文乱码 -->
    <title>我的网页标题</title>  <!-- 浏览器标签页上显示的名字 -->
    <style>                 <!-- 内部 CSS:美化样式 -->
      body { font-family: "Microsoft YaHei"; }
    </style>
  </head>
  
  <body>                  <!-- 身体:用户看到的所有内容 -->
    
    <h1>这是一个大标题</h1>
    <p>这是一个段落。</p>
    
  </body>
  
</html>                   <!-- 网页结束 -->

beautiful soup库终端安装bs4库pip install bs4

                                引入from bs4 import BeautifulSoup

                                访问请求import requests

                                content=requests.get(网站).text

                                soup=BeautifulSoup(content,“html.parser”)指定html解析器

                               all_titles=soup.findAll("要查找的东西h/table")

                               for title in all_titles:

                                     all_links=title.findAll(‘什么元素’)

                                     for  link in all_links:

                                            print(link.string)

查找元素所属,右键检查,根据爬虫任务的不同具体去分析提取内容的一致性来修改代码

3、存储或分析数据

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐