Python 技术分享

深入浅出学习 Python

这篇讲什么

  • BeautifulSoup 4.15 的用法按「查找 → 取属性 → 取文本 → 遍历 → 改结构」五步走,每条都带本机实测输出。
  • 抓页面的示例都指向公开练习站 scrape.center,它是《Python3 网络爬虫开发实战》的作者搭的,专门给爬虫练手,不校验请求头。
  • 解析器不是随便选:html.parser、lxml、html5lib 对同一份残缺 HTML 的补全结果不一样,真实列表页上的速度实测差近 3 倍。
  • 记下三个真实踩坑点:不指定解析器会吃 GuessedAtParserWarning、find_all(text=) 已弃用、往文档里塞「用 lxml 解析出来的片段」会连 <html><body> 一起搬进去。
阅读全文 »

这篇讲什么

  • 把 re 模块的元字符、数量修饰、分组引用、贪婪与非贪婪、五个常用函数逐个跑一遍,每条都带本机实测结果。
  • 重点讲两类翻车:贪婪 .* 把整页吃穿,以及用正则解析 HTML 时属性顺序一变就什么都取不到。
  • 最后给一个能整段复制的实战:从 scrape.center 的电影站列表页取名称、评分与详情链接,再从详情页取地区和上映日期,写成 HTML 文件。
阅读全文 »

这篇讲什么

  • 把 urllib 的高级部分讲透:Handler 与 Opener 怎么组装、代理怎么配、cookie 怎么存怎么用,以及 HTTPError / URLError 的分支为什么要按顺序写。
  • 代理这一节重点在「怎么确认请求真的走了代理」:实测本机 ProxyHandler 对 127.0.0.1 根本不生效,原因是 Windows 注册表里的代理例外列表,requests 却不受影响。
  • cookie 这一节给出三种 CookieJar 的落盘与回读结果,并解释为什么登录后的 cookie 存到文件里是空的。
阅读全文 »

这篇讲什么

  • 爬虫在技术上就两件事:用程序发 HTTP 请求拿到内容,再从内容里把想要的字段挑出来。这篇先把「HTTP 报文到底长什么样」用真实字节摊开看一遍。
  • 顺手把 Python 标准库 urllib 的五个子模块逐个跑一遍:request 发请求、parse 拆 URL、error 接异常、response 读响应、robotparser 看站点规矩。
  • 最后落到两个能直接抄走的最小例子:一个用 urllib 抓在线练习站的列表页,一个带 token 的 POST 表单,并解释为什么服务端一眼就能认出你不是浏览器。
阅读全文 »

这篇讲什么

  • 这篇从架构视角看 DRF:前后端分离(CSR)要解决什么问题、一次请求在 DRF 里怎么从路由走到序列化器再变成 JSON、以及「四行代码定义一个模型的 API」到底成不成立。
  • 涉及的组件行为都按本机 Django 5.2.19 + DRF 3.18.3 实测过。
阅读全文 »

这篇讲什么

  • ViewSet 把「按 HTTP 方法写函数」换成「按动作写方法」,Router 再用一行 router.register() 把列表、详情、增删改查的路由和反解名字全生成出来。
  • 这篇把 ViewSet 与 Mixin 的关系、不用 Router 时的手动映射、@action 自定义路由、反解与超链接逐个跑通,末尾列了实测踩到的新手卡点。实测环境 Django 5.2.19 + DRF 3.18.3。
阅读全文 »

这篇讲什么

  • 认证回答「你是谁」,权限回答「你能不能做这件事」,DRF 把两者做成可插拔的列表,既能全局配也能按视图配。
  • 这篇用「学生只属于创建者」这个例子,把模型上的所有者字段、只读的 owner、默认认证方式、权限类与对象级权限、可浏览 API 的登录入口都跑了一遍。实测环境 Django 5.2.19 + DRF 3.18.3。
阅读全文 »

这篇讲什么

  • DRF 的类视图分三层:APIView、GenericAPIView + Mixin、以及开箱即用的通用视图。
  • 这篇把三层各写一遍能跑的代码,比出什么时候该往下沉一层、什么时候该停下来。新手卡点清单来自本机 Django 5.2.19 + DRF 3.18.3 的真实报错。
阅读全文 »

这篇讲什么

  • DRF 在 Django 的请求与响应之上各包了一层:Request 多了统一的 .data,Response 能按 Accept 头或 URL 后缀渲染成不同格式。
  • 这篇把这两层的差异、格式后缀、状态码与错误响应的形状讲清楚,并对照 @api_view 与 APIView 两种入口。实测环境 Django 5.2.19 + DRF 3.18.3。
阅读全文 »

这篇讲什么

  • 序列化器是 DRF 的门面:往外把模型对象变成 JSON,往里把前端传来的 JSON 校验后变成对象。
  • 这篇按「对象 → 数据 → JSON」和「JSON → 数据 → 对象」两个方向各跑一遍,含安装配置、字段怎么写、校验与 create / update、以及在视图里的用法。实测环境 Django 5.2.19 + DRF 3.18.3。
阅读全文 »
0%