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

Python 爬虫入门 Day 1 - 网络请求与网页结构基础

Python 第二阶段 - 爬虫入门

🎯 今日目标

  • 理解什么是 Web 爬虫、其应用场景
  • 掌握如何使用 requests 库向网页发送请求
  • 初步了解网页 HTML 结构(为解析做准备)

📘 学习内容详解

  1. 🕷️ 什么是爬虫?

    定义:

    网络爬虫(Web Crawler)是一种自动访问网页并提取数据的程序。

    常见用途:

    • 爬取图书/商品信息、电影/剧集评分等
    • 抓取招聘/房产数据进行数据分析
    • 自动化内容归档、信息监控、数据备份
  2. 🛠️ 使用 requests 库发起网络请求

    pip install requests
    

    基本用法:

    import requestsurl = "https://example.com"
    response = requests.get(url)print("状态码:", response.status_code)
    print("网页内容:", response.text[:500])  # 预览前500字符
    

    常用参数:

    requests.get(url, params={'key': 'value'}, headers={'User-Agent': '...'})# 示例:
    headers = {'User-Agent': 'Mozilla/5.0'}
    response = requests.get("https://httpbin.org/get", headers=headers)
    
  3. 🌐 初识 HTML 结构

    网站返回的文本通常是 HTML,结构如下:

    <html><head><title>标题</title></head><body><h1>主标题</h1><p class="info">这是段落</p></body>
    </html>
    

    我们后续会用工具(如 BeautifulSoup)提取这些标签中的内容。


💡 今日练习任务

  1. 使用 requests 获取以下网址内容:

    • https://httpbin.org/get
    • https://www.baidu.com (添加 headers 模拟浏览器)
  2. 打印网页的状态码、响应头和部分内容。

  3. 额外挑战:试着获取你感兴趣的网站首页源码,比如:

    • 豆瓣(https://movie.douban.com/)
    • 简书、知乎、B站等
    	
    # url = "https://movie.douban.com/"
    # url = "https://www.jianshu.com"
    # url = "https://www.zhihu.com"
    url = "https://www.bilibili.com"
    headers = {'Accept': 'application/json, text/plain, */*','Host': 'www.bilibili.com','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0'
    }
    response = requests.get(url, headers=headers)print("状态码:", response.status_code)
    print("网页内容:", response.text)
    

    B站:
    在这里插入图片描述

📝 今日总结

  • 学会了使用 requests 获取网页内容
  • 初步了解网页 HTML 构成
  • 知道了真实网站可能需要加 headers(伪装为浏览器)
http://www.xdnf.cn/news/999559.html

相关文章:

  • WSGI(自用)
  • 解决npm install 一直卡着不动,npm install --verbose
  • TickIt:基于 LLM 的自动化 Oncall 升级
  • 相机Camera日志实例分析之三:相机Camx【视频光斑人像录制】单帧流程日志详解
  • 如何快速删除谷歌浏览器在mac启动台生成的网页图标
  • 42 C 语言随机数生成:rand() 与 srand() 深度解析、生成指定范围随机数、应用实战
  • xilinx的gtx使用qpll,是否可以实现4lane运行不同的线速率
  • 【力扣 简单 C】21. 合并两个有序链表
  • Python训练打卡Day48
  • Jenkins 配置gitlab的 pipeline流水线任务
  • 比特币拼图解密工具
  • 利用AlphaFold3和RosettaDesign设计高热稳定工业脂肪酶变体
  • 水库水电站泄洪预警系统综合解决方案
  • NXP S32K146 T-Box 携手 SDNAND(贴片式 TF 卡):驱动汽车智能革新的黄金组合
  • 第七节 工程化与高级特性-装饰器(Decorators)的应用场景
  • 文本的数据分析
  • 过好人生:在清醒与热爱间寻找生命的光
  • Proxy arp(代理 ARP)逻辑图解+实验详解+真机实践验证
  • 基于范围的for循环
  • 【力扣 简单 C】206. 反转链表
  • 基于深度学习的异常检测系统:原理、实现与应用
  • 手机射频功放测试学习(一)——手机线性功放的主要测试指标
  • 落水人员目标检测数据集(猫脸码客第253期)
  • 开源 内存分配器 mimalloc 在 windwos 的编译及使用
  • Unity json解析选择实测
  • xhtml2pdf中文屏幕溢出问题
  • SpringBoot后端开发知识点总结(持续更新)
  • 《棒球万事通》棒球战术介绍·棒球1号位
  • 在rust中执行命令行输出中文乱码解决办法
  • android:foregroundServiceType详解