今天这篇文章,以“能落地、能复用”为核心,从环境搭建到实战案例,一步步带着你上手Python爬虫,哪怕你是完全零基础,也能快速爬取自己需要的数据。适合谁看?
✅ 职场人:需要批量采集数据(电商、房源、招聘、资讯),不想手动复制粘贴,节省时间成本;
✅ 学生党:课程作业、毕业设计需要数据支撑,想快速掌握爬虫技能,提升竞争力;
✅ 创业者/自由职业者:需要行业数据、用户评论、竞品信息,靠数据决策,降低试错成本;
✅ 编程新手:想入门Python,爬虫是最易出成果、最能激发兴趣的实操方向,无编程基础也能学会。
一、为什么推荐新手从爬虫入手学Python?
很多人想学Python,但不知道从哪里开始,要么被枯燥的语法劝退,要么学完基础却不知道能用来做什么。
而爬虫,恰好是Python最实用、最易出成果的应用方向——不需要高深的编程功底,掌握基础语法+核心库,就能快速爬取网上的公开数据,既能解决实际需求(比如批量找素材、采数据),又能通过实操巩固语法,形成“学习-实践-反馈”的正向循环。
举个例子:你是做电商的,想了解竞品的商品价格、用户评论,手动复制几十上百个商品,要花大半天时间,而且容易出错;用爬虫,写好脚本,一键运行,几十分钟就能采集完所有数据,还能自动导出Excel,直接用于分析。
再比如:你是学生,毕业设计需要某行业的资讯数据,手动整理几百条新闻,耗时又费力;用爬虫,几分钟就能批量采集,还能筛选关键信息,大大提升效率。
这就是爬虫的价值——把人从重复、繁琐的手动操作中解放出来,用技术节省时间,用数据创造价值。
二、前期准备:3分钟搭建爬虫环境(新手零踩坑)
很多新手入门爬虫,第一步就栽在“环境搭建”上——安装Python、配置环境变量、安装第三方库,稍微出错就无法运行,最后直接放弃。
这里给大家整理了最简洁的搭建步骤,全程无难点。
1.安装Python
推荐安装Python 3.9版本(兼容性最好,避开过高或过低版本的坑),安装包我已经整理好,无需自己去官网下载,避免下载到阉割版、捆绑版。
安装步骤:
① 双击安装包,勾选“Add Python 3.9 to PATH”(关键一步,避免后续配置环境变量);
② 点击“Install Now”,等待安装完成(全程默认下一步,无需修改任何设置);
③ 安装完成后,打开cmd,输入“python --version”,出现“Python 3.9.x”,说明安装成功。
2.安装爬虫核心库
爬虫需要用到3个核心库,无需一个个手动安装,复制下面的命令,粘贴到cmd中,回车即可一键安装所有库:
pip install requests beautifulsoup4 pandas
解释一下这3个库的作用,不用记,知道它们是干什么的就行:
· requests:发送网络请求,相当于“模拟浏览器访问网站”;
· beautifulsoup4:解析网页内容,从网页中提取需要的数据(比如文本、图片、表格);
· pandas:将采集到的数据整理成Excel表格,方便查看和使用。
安装完成后,输入“pip list”,能看到这3个库的名称和版本,就说明安装成功,可以开始爬虫实操了。
三、核心实操:3个高频爬虫案例
案例1:基础文本采集(爬取某资讯网站文章标题+内容)
适用场景:批量采集新闻、博客、行业资讯等文本内容,用于整理素材、做内容分析。
1.爬取思路(三步法):
① 发送请求:用requests库访问目标资讯网站,获取网页源代码;
② 解析内容:用beautifulsoup4库提取网页中的文章标题、正文内容;
③ 保存数据:将提取到的标题和内容,保存为TXT文件,方便查看。
2.参考代码:
import requestsfrom bs4 import BeautifulSoup# 1. 发送请求(替换成你要爬取的资讯网站URL)url = "https://xxx.com/news" # 这里替换成目标网站地址headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"} # UA伪装,避免被网站识别为爬虫response = requests.get(url, headers=headers)response.encoding = "utf-8" # 解决中文乱码问题# 2. 解析内容soup = BeautifulSoup(response.text, "html.parser")# 提取文章标题(根据目标网站的标签修改,这里是示例)titles = soup.find_all("h3", class_="news-title")# 提取文章正文(根据目标网站的标签修改,这里是示例)contents = soup.find_all("div", class_="news-content")# 3. 保存数据for i in range(len(titles)): title = titles[i].get_text().strip() content = contents[i].get_text().strip() # 保存为TXT文件 with open(f"资讯_{i+1}.txt", "w", encoding="utf-8") as f: f.write(f"标题:{title}\n\n正文:{content}")print("爬取完成!文件已保存到当前文件夹")
3.关键修改点(必看):
① url:替换成你要爬取的资讯网站地址(比如某行业资讯网、新闻网);
② titles和contents中的标签(h3、div)和class值:需要根据目标网站的源代码修改。
案例2:表格数据采集(爬取某表格类网站,导出Excel)
适用场景:批量采集电商商品信息、房源信息、招聘信息、行业数据等表格类内容,导出Excel后直接用于分析、统计。
1.爬取思路:
① 发送请求:访问目标表格网站,获取网页源代码;
② 解析内容:提取表格中的表头(比如商品名称、价格、销量)和表格数据;
③ 保存数据:用pandas库将数据整理成DataFrame,导出为Excel文件,可直接编辑、筛选。
2.参考代码:
import requestsfrom bs4 import BeautifulSoupimport pandas as pd# 1. 发送请求(替换成你要爬取的表格网站URL)url = "https://xxx.com/table" # 替换成目标表格网站地址headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}response = requests.get(url, headers=headers)response.encoding = "utf-8"# 2. 解析内容soup = BeautifulSoup(response.text, "html.parser")table = soup.find("table", class_="table-content") # 找到表格标签(根据目标网站修改)# 提取表头headers = []for th in table.find_all("th"): headers.append(th.get_text().strip())# 提取表格数据rows = []for tr in table.find_all("tr")[1:]: # 跳过表头行 row = [] for td in tr.find_all("td"): row.append(td.get_text().strip()) rows.append(row)# 3. 保存为Exceldf = pd.DataFrame(rows, columns=headers)df.to_excel("表格数据.xlsx", index=False) # 导出Excel,不保留索引print("爬取完成!Excel文件已保存到当前文件夹")
3.关键修改点:
① url:替换成目标表格网站地址(比如某房源网的房源列表、某招聘网的岗位列表);
② table标签的class值:根据目标网站的源代码修改,找到表格对应的标签即可。
这个案例非常实用,比如你想爬取某电商平台的商品价格、销量,替换url和标签后,一键就能导出Excel,不用再手动复制粘贴几十上百条数据。
案例3:批量图片爬取(爬取某网站图片,批量保存到本地)
适用场景:批量采集图片素材(比如产品图片、风景图片、文案配图),用于设计、自媒体、素材整理等。
1.爬取思路:
① 发送请求:访问目标图片网站,获取网页源代码;
② 解析内容:提取图片的URL地址(图片的真实链接);
③ 保存图片:循环访问每个图片URL,将图片保存到本地文件夹,自动命名。
2.参考代码:
import requestsfrom bs4 import BeautifulSoupimport os# 1. 发送请求(替换成你要爬取的图片网站URL)url = "https://xxx.com/images" # 替换成目标图片网站地址headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}response = requests.get(url, headers=headers)response.encoding = "utf-8"# 2. 解析内容,提取图片URLsoup = BeautifulSoup(response.text, "html.parser")img_tags = soup.find_all("img", class_="img-item") # 找到图片标签(根据目标网站修改)# 创建文件夹,用于保存图片if not os.path.exists("爬取的图片"): os.mkdir("爬取的图片")# 3. 批量保存图片for i, img in enumerate(img_tags): img_url = img["src"] # 提取图片真实URL # 发送请求,获取图片内容 img_response = requests.get(img_url, headers=headers) # 保存图片 with open(f"爬取的图片/图片_{i+1}.jpg", "wb") as f: f.write(img_response.content) print(f"已保存第{i+1}张图片")print("所有图片爬取完成!已保存到「爬取的图片」文件夹")
3.关键修改点:
① url:替换成目标图片网站地址(比如某图片素材网、某产品展示网);
② img_tags中的标签(img)和class值:根据目标网站的源代码修改,找到图片对应的标签;
③ 图片格式:如果目标网站的图片是png格式,将代码中的“jpg”改为“png”即可。
四、新手必看:避开反爬坑,提高爬取成功率
很多新手爬取数据时,会遇到“爬取失败”“网页无法访问”“只爬取到部分数据”的问题,这其实是网站的反爬机制在起作用——网站会识别爬虫程序,禁止其访问。
这里给大家分享3个新手必学的反爬技巧,能解决90%的爬取失败问题,简单易操作,直接用到上面的案例中即可。
1.UA伪装(最基础、最有效)
网站会通过“User-Agent”识别访问者是浏览器还是爬虫,我们只需要在请求中添加UA信息,模拟浏览器访问,就能避开大部分基础反爬。
上面的3个案例中,已经添加了UA信息,你可以直接复用,也可以替换成自己浏览器的UA(获取方法:打开浏览器,按F12→点击Network→刷新网页→找到任意请求→Headers→找到User-Agent,复制即可)。
2.控制请求频率
如果短时间内发送大量请求,网站会认为是爬虫,从而封禁IP。解决方法:在循环爬取时,添加延迟,让请求间隔一段时间再发送。
添加方法:在代码开头导入time库,在循环中添加time.sleep(1)(表示间隔1秒发送一次请求),示例:
import time # 导入time库# 在循环中添加延迟for i, img in enumerate(img_tags): time.sleep(1) # 间隔1秒,可根据情况调整(0.5-3秒都可以) img_url = img["src"] # 后续保存图片的代码不变
3.处理中文乱码
爬取中文内容时,经常会出现乱码(比如“???×××”),解决方法很简单:在获取响应后,添加“response.encoding = "utf-8"”,上面的案例中已经添加,直接复用即可。
如果添加后还是乱码,可尝试将“utf-8”改为“gbk”,一般能解决问题。
欢迎关注“树哥AI实战营”,
专注AI普及、实战、避坑,
推荐 + 点赞,拥抱AI,面向未来!