课程简介:本课程从零讲解网络爬虫核心原理、环境搭建、基础语法、实战爬取、反爬绕过、数据解析与存储,适合零基础小白、编程入门者。全程干货无废话,配套官方文档、工具下载、实战案例链接,可直接上手练习。 学习前置要求:无需编程基础,了解电脑基础操作即可 课程配套资源链接(全程可用)
- Python官方下载:https://www.python.org/downloads/
- PyCharm社区版免费下载:https://www.jetbrains.com/pycharm/download/
- Requests官方文档:https://requests.readthedocs.io/
- BeautifulSoup官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/
- XPath语法文档:https://www.w3school.com.cn/xpath/
- 正则表达式在线测试工具:https://tool.oschina.net/regex/
- 爬虫练习测试网站(无反爬、适合新手):http://books.toscrape.com/ 第一章 网络爬虫核心原理与认知 1.1 什么是网络爬虫 网络爬虫(又称网页蜘蛛、网络机器人),是一种按照既定规则,自动抓取互联网网页数据的程序。简单来说:模拟人浏览网页的行为,用代码自动获取网页文字、图片、链接、数据等信息。 日常场景:搜索引擎收录网页、电商价格监控、舆情数据采集、数据分析素材获取,底层都是爬虫技术。 1.2 爬虫工作完整流程
- 发送请求:代码向目标网站服务器发送网络请求(GET/POST),模拟浏览器访问
- 接收响应:服务器返回网页源代码(HTML、JSON、二进制数据等)
- 数据解析:从杂乱的源代码中提取需要的文字、图片、数字等有效数据
- 数据存储:将提取的数据保存到文本、Excel、数据库中
- 循环抓取:自动翻页、批量抓取全站数据 1.3 爬虫合法合规边界(必看)
- 遵守网站robots协议,禁止爬取禁止公开访问的内容
- 本课程所有案例仅用于学习练习,禁止用于商业违规用途 第二章 爬虫环境搭建(零基础一步到位) 2.1 安装Python 爬虫主流语言为Python,语法简单、库资源丰富,是爬虫首选。 下载地址:https://www.python.org/downloads/ 安装注意事项:勾选 Add Python to PATH(自动配置环境变量) 验证安装:打开电脑CMD,输入 python --version,显示版本号即安装成功。 2.2 安装代码编辑器PyCharm 下载地址:https://www.jetbrains.com/pycharm/download/ 选择Community(社区版)免费开源,足够日常爬虫开发使用。 2.3 安装爬虫核心库 打开CMD,依次输入以下命令,安装爬虫必备工具库:
网络请求核心库
pip install requests
网页解析库
pip install beautifulsoup4
xpath解析库
pip install lxml
数据存储Excel库
pip install openpyxl 第三章 爬虫基础:网络请求核心(GET/POST) 3.1 GET请求(最常用) GET请求用于获取网站公开数据,比如浏览网页、查看列表数据,是新手爬虫最常用的请求方式。 实战案例:获取测试网站网页源码 import requests
目标网址
url = “http://books.toscrape.com/”
发送GET请求
response = requests.get(url)
设置编码,解决中文乱码
response.encoding = “utf-8”
打印网页源码
print(response.text)
打印响应状态码 200=成功 404=不存在 500=服务器错误
print(“状态码:”, response.status_code) 3.2 请求头Headers(解决基础反爬) 很多网站会拦截裸代码请求,需要添加 User-Agent 模拟浏览器访问,伪装成真人浏览。 带请求头完整代码 import requests
url = “http://books.toscrape.com/”
请求头伪装浏览器
headers = { “User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” }
response = requests.get(url, headers=headers) response.encoding = “utf-8” print(response.text) 3.3 POST请求 POST请求用于提交数据,比如登录、搜索、表单提交,适合需要传参交互的爬虫场景。 import requests
url = “测试接口地址”
需要提交的参数
data = { “key1”: “value1”, “key2”: “value2” }
response = requests.post(url, data=data, headers=headers) print(response.text) 第四章 核心数据解析(三大解析方式全覆盖) 4.1 BeautifulSoup解析(简单易懂,新手首选) 用于解析HTML网页,精准提取标题、文本、链接、图片地址。 实战:提取书籍标题 import requests from bs4 import BeautifulSoup
url = “http://books.toscrape.com/” headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36”}
response = requests.get(url, headers=headers) response.encoding = “utf-8”
解析网页
soup = BeautifulSoup(response.text, “lxml”)
批量提取所有书籍标题
book_list = soup.select(“article h3 a”) for book in book_list: title = book.get(“title”) print(“书籍标题:”, title) 4.2 XPath解析(精准高效,企业常用) XPath是网页定位语法,定位精准、速度快,适合复杂网页解析,搭配上方W3school链接可自学全部语法。 4.3 正则表达式解析(通用万能) 适合提取不规则文本、数字、手机号、链接等任意内容,可使用在线正则测试工具调试规则。 在线调试链接:https://tool.oschina.net/regex/ 第五章 爬虫数据存储(文本+Excel) 5.1 保存为TXT文本
追加写入数据
with open(“书籍数据.txt”, “a”, encoding=“utf-8”) as f: f.write(title + “\n”) 5.2 保存为Excel表格 适合规整化数据,方便统计、查看、二次使用,是爬虫最常用的存储方式。 第六章 基础反爬绕过与进阶技巧 6.1 常见基础反爬与解决方案
- 访问频率限制:添加延时 time.sleep(1-3) 模拟人工浏览间隔
- 403禁止访问:补充完整请求头(Referer、Cookie等) 6.2 延时爬虫代码示例 import time
每次请求暂停2秒,防止封IP
time.sleep(2) 第七章 完整实战案例(单页批量爬取) 功能:批量爬取测试网站书籍标题、价格、图片链接,保存至本地 import requests from bs4 import BeautifulSoup import time
url = “http://books.toscrape.com/” headers = { “User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” }
发送请求
res = requests.get(url, headers=headers) res.encoding = “utf-8” soup = BeautifulSoup(res.text, “lxml”)
批量抓取数据
books = soup.find_all(“article”, class_=“product_pod”) for book in books: title = book.h3.a[“title”] price = book.find(“p”, class_=“price_color”).text print(f"书名:{title},价格:{price}") time.sleep(0.5) 第八章 课程总结与进阶学习方向 8.1 本节课核心知识点
- IP代理池绕过IP封禁 XPath教程:https://www.w3school.com.cn/xpath/ 正则测试工具:https://tool.oschina.net/regex/ 爬虫练习网站:http://books.toscrape.com/