“老板让你去网站上找100个产品的价格?手动复制粘贴?那不是上班,那是上刑。”
大家好,我是你们那位“能爬数据绝不动手,能自动化绝不手动”的博主。
今天是我们30天自救计划的第十八天,第三周的第四天。
前三天,我们学会了让AI分析图表、做统计检验、自动生成分析结论。现在,你的数据分析能力已经可以秒杀大多数同事了。
但还有一个问题:数据从哪来?
很多时候,数据并不在Excel文件里,而是散落在各个网站上:
以前你是怎么做的?打开网页 → 选中数字 → Ctrl+C → 切到Excel → Ctrl+V。如果数据有100行,你就得重复100遍。
今天,我教你用Python写一个“数据采集机器人”——也就是传说中的爬虫,让程序自动去网站上把数据“偷”下来,整整齐齐放进Excel。
假设你是某电商公司的运营。老板说:“去京东上把前50名手机的价格和评论数抄下来,我要做个竞品分析。”
你打开京东,搜索“手机”,看到了长长的列表:

手动复制网页数据到手抽筋
以前的你:
一个小时后,你复制完了,眼睛花了,脖子酸了,还漏了三个商品。老板说:“做得不错,明天再把前50名家电的数据也弄一下。”
你当场想辞职。
现在的你:
打开Python,写几行代码,让程序自动去网页上“逛一圈”,把数据全带回来。你喝着咖啡,看着屏幕上滚动的数据,三分钟后,Excel表格已经整整齐齐了。
爬虫,就是自动访问网页并提取数据的程序。
你可以把它想象成一个不知疲倦的实习生:
它不会累,不会抱怨,不会漏掉数据。

Python爬虫小蜘蛛出动
打开ChatGPT,输入:
“我是一个Python初学者。我想从某个网页上抓取数据,比如从‘ quotes.toscrape.com ’(一个测试网站)抓取名言和作者。请帮我写一个爬虫脚本,用requests和BeautifulSoup,把抓取到的数据保存到Excel文件里。每行加注释,并告诉我怎么安装需要的库。”
AI会给你类似这样的代码:
python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# ========== 配置区 ==========
目标网址 = 'http://quotes.toscrape.com/'# 这是一个专门用来练习爬虫的网站
输出文件名 = '名言集.xlsx'
# ============================
# 1. 发送请求,获取网页内容
print(f"正在访问:{目标网址}")
response = requests.get(目标网址)
response.encoding = 'utf-8'# 设置编码,避免中文乱码
# 2. 用BeautifulSoup解析网页
soup = BeautifulSoup(response.text, 'html.parser')
# 3. 找到所有名言所在的元素(通过查看网页源码得知,每条名言在一个<div class="quote">里)
quotes = soup.find_all('div', class_='quote')
# 4. 提取每条名言和作者
数据 = []
for quote in quotes:
文本 = quote.find('span', class_='text').text # 名言文本
作者 = quote.find('small', class_='author').text # 作者
数据.append([文本, 作者])
print(f"抓取到:{作者} - {文本[:20]}...") # 打印前20个字符
# 5. 保存到Excel
df = pd.DataFrame(数据, columns=['名言', '作者'])
df.to_excel(输出文件名, index=False)
print(f"✨ 抓取完成!共抓取 {len(数据)} 条数据,已保存到 {输出文件名}")【截图位置:代码编辑器里显示这段代码,高亮关键部分】
你会看到屏幕上打印出正在抓取的信息,最后生成一个 名言集.xlsx 文件。

数据自动流向Excel
打开Excel,看看是不是已经有数据了?就这么简单!
你不需要记住这些,只需要知道:让AI帮你写,你负责告诉它你要抓什么。
很多网站的数据不止一页。比如 quotes.toscrape.com 有好多页,每页10条。你想抓取所有页怎么办?
继续问AI:
“这个网站有分页,网址是
http://quotes.toscrape.com/page/1/,一直到第10页。请帮我改进上面的代码,循环抓取所有页面,合并数据。”
AI会给你加上循环,比如:
python
所有数据 = []
for 页码 in range(1, 11):
网址 = f'http://quotes.toscrape.com/page/{页码}/'
print(f"正在抓取第 {页码} 页...")
response = requests.get(网址)
soup = BeautifulSoup(response.text, 'html.parser')
quotes = soup.find_all('div', class_='quote')
for quote in quotes:
文本 = quote.find('span', class_='text').text
作者 = quote.find('small', class_='author').text
所有数据.append([文本, 作者])
# 可以加个延时,避免请求太快被封
import time
time.sleep(1)这样就能抓取所有页面的数据了。
爬虫虽然强大,但不能乱用。记住三条“江湖规矩”:
简单说:做个文明的爬虫,不要给人家添麻烦。

数据自动流向Excel
作业题目:
用今天学的爬虫知识,抓取一个你感兴趣网站的数据(可以是测试网站,或者你自己找的允许爬取的网站)。
操作步骤:
挑战版:
尝试抓取一个分页网站的所有数据(比如 books.toscrape.com 是一个专门练爬虫的图书网站)。截图你抓取到的所有数据。
“手动复制是体力活,写爬虫是技术活——用技术偷懒,才是真·职场智慧。”
今天你学会了用Python抓取网页数据。从此以后,任何需要从网站上复制粘贴的数据工作,都可以交给爬虫。你的双手终于解放了。
但记住:爬虫是一把双刃剑。用得好,你是效率达人;用不好,你可能会被封IP甚至惹上麻烦。一定要遵守规则,做个文明的爬虫。
明天Day 19,我们会学一个有趣的对比:《当Excel透视表遇上Python:谁是快男?》。用实际案例对比Excel透视表和Python pandas的速度和灵活性,让你在不同场景下选择最合适的工具。
评论区交给你:
你平时需要从网站上复制数据吗?有没有被这种工作折磨过?说出来让大家一起同情你。
点击关注,每天学一招,让Python给你打工!
#Python教学 #爬虫 #网页数据抓取 #告别复制粘贴 #效率神器
P.S. 今天的作业如果成功了,以后你看到网页上的表格,第一反应不再是“我要复制”,而是“写个爬虫抓下来”。恭喜你,你已经是个合格的“懒人”了。