requests+BeautifulSoup是新手快速抓取网页数据的最轻量组合,先pip安装二者,用requests.get获取响应并检查status_code、设置encoding防乱码,再用BeautifulSoup解析HTML,通过find/find_all或CSS选择器定位元素,最后用get_text()或属性索引提取内容。

想用 Python 快速抓取网页数据?requests + BeautifulSoup 是最轻量、最易上手的组合,适合新手快速跑通第一个爬虫。
安装依赖:两行命令搞定
打开终端或命令行,依次运行:
- pip install requests —— 发起 HTTP 请求,获取网页源码
- pip install beautifulsoup4 —— 解析 HTML,定位并提取目标内容
不需要额外装 lxml(虽然它更快),bs4 默认用 Python 内置的 html.parser 就够用了。
requests 基础:获取网页内容不踩坑
别一上来就写 headers 或 sleep,先确保能拿到页面:
立即学习“Python免费学习笔记(深入)”;
- 用 response = requests.get(url) 获取响应
- 检查 response.status_code == 200,不是 200 就别往下解析了
- 加一句 response.encoding = response.apparent_encoding,避免中文乱码
- 简单网站可省略 headers;但遇到反爬时,加一个常见的 User-Agent 就能绕过大部分基础拦截
BeautifulSoup 入门:从找标签到取文本
解析后不是直接“找文字”,而是按 HTML 结构层层定位:
- 用 soup = BeautifulSoup(html_text, 'html.parser') 创建解析对象
- 查单个元素:soup.find('div', class_='title')(注意 class_ 下划线)
- 查多个元素:soup.find_all('a', href=True),返回列表,可遍历
- 取文本用 .get_text(),取属性用 ['href'](如 a 标签的链接)
- 用 CSS 选择器更简洁:soup.select('.news-list li h3 a'),适合熟悉前端的人
实战小例子:抓取豆瓣电影 Top 250 的片名和评分
目标页:https://www.php.cn/link/fe4d301c85d0283539fa913502072ad7(无需登录)
- 每页 25 条,共 10 页,URL 规律是 ?start=0、?start=25…
- 片名在
- 评分在
- 循环请求 + 解析 + 保存为 CSV,50 行内就能完成
真正卡住你的往往不是语法,而是看懂网页结构——右键「查看网页源代码」或用浏览器开发者工具(F12)点选元素,比猜标签高效得多。










