🔸爬虫是什么?
爬虫的核心逻辑其实并不难:它本质上是一套自动获取、解析和整理网页公开数据的程序流程。
我们平时看到的网页,背后其实都是由页面代码生成的。比如我们跨境常见的亚马逊网页会有标题、价格、图片、链接等等内容组成;而 Python 爬虫要做的是读取这个网页内容,再找到我们想要的信息,最后通过程序自动提取出来。比如你要的是亚马逊多个竞品的价格,人工操作就是一个一个点击记录下来,但用python 技术就可以批量一次性自动拿到多个竞品价格。python通常会用来:
- 抓取需要频繁访问平台,同一个 IP 请求次数太多,容易被平台限制;
- 抓取不同国家或地区的页面,需要使用对应地区的 IP;
- 不同的抓取项目,最好分开使用不同的网络环境,避免互相影响。
你是新手的话,可以先买少量做测试,我用的是这个:
https://www.kookeey.com/clientarea/#/user/register?aff=30927569
新手直接领取免费的流量包,买它的一元大礼包然后再下单,更划算👇。
🔸Python 爬虫是如何工作的?
一个完整的基础爬虫,通常包含四个核心环节。
1. 请求网页
程序向目标网址发送 HTTP 请求,获取服务器返回的网页内容。
2. 解析页面
大多数网页由 HTML 标签构成。程序需要读取这些标签,理解页面的结构。
3. 提取数据
根据标签名称、class 属性或 CSS 选择器,找到标题、价格、链接等目标信息。
4. 保存数据
把提取后的数据保存到 CSV、Excel、JSON 或数据库中,方便后续分析和使用。
整个流程可以概括为:
发送请求 → 获取 HTML → 解析页面 → 提取数据 → 保存结果

🔸Python 爬虫常用工具
Python 中与爬虫相关的工具很多,但刚入门时不需要全部学习。
常见工具:
1. Requests
Requests 负责向网站发送 HTTP 请求,并接收服务器返回的数据。
简单来说,它解决的是:
Python 怎么访问一个网页?
2. BeautifulSoup
BeautifulSoup 负责解析 HTML 页面,并从中找到目标标签和数据。
它解决的是:
获取网页源码后,怎么找到需要的内容?
3. Selenium或Playwright
部分网页的数据不是直接写在 HTML 中,而是在浏览器打开后,通过 JavaScript 动态加载出来。
这时可以使用 Selenium 或 Playwright 控制真实浏览器,等待页面渲染后再读取数据。
4. Scrapy
Scrapy 是一个专业的 Python 爬虫框架,内置请求调度、并发、数据管道、失败重试等功能,适合规模较大的采集项目。
这篇文章主要使用 Requests 和 BeautifulSoup。
🔸准备 Python 爬虫环境
要使用python需要确保电脑已经安装 Python。
可以在电脑搜索命令提示符(Win + R)、PowerShell 终端,
在 Windows 电脑中,可以这样打开终端:
命令提示符 / PowerShell:按 Win + R,输入 cmd 或 powershell,再按回车。
Windows Terminal:按 Win + X,然后选择“终端”。
终端输入:
回车,如果能够正常显示 Python 版本,说明安装成功。
没有安装的进入python官网下载:
https://www.python.org/downloads/windows/?key5sk1=9adb1b81fc698e5d0b45e99d3e5cc92d83e55057&utm_source
点击 Download Python install manager 或最新稳定版本。
接下来安装本次需要使用的两个库:
python -m pip install requests beautifulsoup4
requests:负责请求网页;beautifulsoup4:负责解析 HTML。
安装完成后,桌面新建一个 Python 文件,名字随意,例如:book_spider.py
然后我们就可以写代码了。
🔸我们在哪里写 Python 代码?
需要一个专门用来编写代码的工具。
Windows 自带的记事本也能写 Python,但不方便检查代码、运行程序和查看报错。
我常用的是 VS Code 。
直接官网下就好:https://code.visualstudio.com/
VS Code 可以把代码文件、运行终端和报错信息放在同一个页面中。
后面我们需要输入的 Python 代码,都写在 VS Code 的文件编辑区;
安装库和运行文件的命令,则输入在页面下方的终端中。
VS Code 负责“编写代码”,Python 负责“运行代码”,两者并不是同一个软件。
其他 Python 编辑器,例如 PyCharm 或 Python 自带的 IDLE,也可以使用。
🔸下面我们简单实战-抓取网页内容
为了方便练习,这次使用专门供爬虫学习使用的网站:
https://books.toscrape.com/
页面中包含书名、价格、库存状态和详情链接,非常适合作为入门案例。
第一步:向网页发送请求
我们人为查找网页一般是浏览器中输入网址搜索,浏览器展示结果。
在python里也一样,输入代码让 Python 帮我们访问。
打开VS code 写入下面的代码:
import requestsfrom bs4 import BeautifulSoupurl = "https://books.toscrape.com/"response = requests.get(url, timeout=15)response.raise_for_status()soup = BeautifulSoup(response.text, "html.parser")print("网页标题:", soup.title.get_text(strip=True))
在下方的终端输入:
回车,正常情况下会输出:
All products | Books to Scrape - Sandbox
这说明程序已经成功获取并解析了网页。

这里简单理解两个关键内容就可以:
requests.get():负责访问网页;BeautifulSoup():负责解析返回的 HTML 页面。
这一段完成后,就可以开始从网页中寻找书名、价格和链接了。
上面这些代码如果看不懂直接发给AI,让他解释每行的作用,你就大概能理解了
我们需要先在我们要爬取的页面找到源码,
打开目标网页,右键选择“检查”,或者按下 F12,进入开发者工具就能看到网页的 HTML 结构。
然后利用BeautifulSoup 库对HTML进行解析,提取我们想要的内容👇
🔸提取书名、价格和详情链接
完整代码如下:
import requestsfrom bs4 import BeautifulSoupfrom urllib.parse import urljoinurl = "https://books.toscrape.com/"response = requests.get(url, timeout=15)response.raise_for_status()soup = BeautifulSoup(response.text, "html.parser")books = []for item in soup.select("article.product_pod"): title_element = item.select_one("h3 a") price_element = item.select_one(".price_color") if title_element is None or price_element is None: continue title = title_element.get("title", "").strip() price = price_element.get_text(strip=True) relative_link = title_element.get("href", "") link = urljoin(url, relative_link) books.append({ "书名": title, "价格": price, "链接": link })for book in books: print(book)
运行后,控制台会依次输出当前页面中的书名、价格和链接。
例如:
{'书名': 'A Light in the Attic', '价格': '£51.77', '链接': 'https://books.toscrape.com/catalogue/...'}
到这里,我们已经成功从网页中提取出了书名、价格和详情链接。
不过,数据目前只显示在控制台里,一旦关闭窗口就不方便查看。所以下一步,我们把这些内容保存为 CSV 文件到本地文件中。
CSV 文件可以直接用 Excel 打开,很适合刚开始练习数据采集的小白。
在前面的代码后面加入:
import csvwith open("books.csv", "w", newline="", encoding="utf-8-sig") as file: writer = csv.DictWriter( file, fieldnames=["书名", "价格", "链接"] ) writer.writeheader() writer.writerows(books)print(f"抓取完成,共保存 {len(books)} 条数据")
再次运行:
运行完成后,在 book_spider.py 所在的文件夹中,会生成一个名为:“books.csv”的文件。
用 Excel 打开后,就能看到整理好的书名、价格和详情链接。
我们这次练习的是静态网页,书名、价格等数据已经包含在返回的 HTML 中,所以使用 Requests 和 BeautifulSoup 可以直接提取。 但有些网页的数据需要打开页面后,再通过JavaScript 加载。这类页面通常需要进一步分析网页接口,或者使用 Selenium、Playwright 等浏览器自动化工具。 作为刚入门的小白,先把静态网页的抓取流程跑通就可以了。
🔸什么时候会使用代理IP?
如果是批量采集、跨地区访问,会使用到 动态住宅代理,根据目标网站选择对应地区的线路,轮换请求 IP。
代理线路一般长这样:user123:pass456@203.0.113.25:8000
user123:代理用户名;pass456:代理密码;203.0.113.25:代理地址;8000:代理端口。
在 Requests 中,可以这样配置:
proxies = { "http": "http://user123:pass456@203.0.113.25:8000", "https": "http://user123:pass456@203.0.113.25:8000"}response = requests.get( url, proxies=proxies, timeout=15)
代理 IP 是帮助我们调整网络出口,并不能解决所有抓取问题。实际操作时,还是要控制请求频率。
◆ 运行时常见的问题
- 提示没有安装 requests 或 bs4
重新打开终端,输入:
python -m pip install requests beautifulsoup4
- 返回 403 或 429
403 一般表示服务器拒绝访问,429 则说明短时间内请求次数过多。
遇到这种情况,不要连续重复运行,可以先降低请求频率,稍等一段时间后再尝试。
- 程序运行了,却没有抓到数据
一般是网页结构发生了变化,原来的标签位置已经不准确。
可以重新打开开发者工具,检查书名、价格所在的 HTML 标签,再调整代码中的选择器。
完成这次简单实操后,我们已经跑通了一个完整流程:
使用 Requests 获取网页,使用 BeautifulSoup 解析页面,提取书名和价格,最后保存到 CSV 文件。
对于刚入门的人来说,先把这套基础流程真正运行成功,比急着学习 Selenium、Scrapy 或复杂反爬更重要。
等能够独立完成一个简单爬虫后,再继续学习翻页、动态网页、接口分析和数据库,整个学习过程会清晰很多。
点关注👇,持续了解更多出海知识