一、前言
很多人学会 requests 爬虫后,会遇到一个问题:
👉 页面数据抓不到!
原因很简单:
- 网站使用了 JavaScript动态加载
- 或者使用了 反爬机制
这时候,普通爬虫就失效了。
👉 解决方案:使用 Selenium 模拟浏览器操作
二、什么是 Selenium?
Selenium 是一个可以控制浏览器行为的工具,比如:
- 打开网页
- 点击按钮
- 输入内容
- 滚动页面
👉 本质就是:让代码像人一样操作浏览器
三、安装环境
pip install selenium
下载浏览器驱动(以 Chrome 为例):
- ChromeDriver
四、基础示例(打开网页)
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
print(driver.title)
五、模拟用户操作(核心)
1️⃣ 输入内容
from selenium.webdriver.common.by import By
input_box = driver.find_element(By.ID, "search")
input_box.send_keys("Python爬虫")
2️⃣ 点击按钮
button = driver.find_element(By.ID, "btn")
button.click()
3️⃣ 等待页面加载(重点)
import time
time.sleep(2)
👉 或更推荐:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "result"))
)
六、模拟“真人行为”(防封关键)
⭐ 随机延迟
import random
import time
time.sleep(random.uniform(1, 3))
⭐ 模拟滚动页面
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
⭐ 模拟慢速输入
import time
for c in "python":
input_box.send_keys(c)
time.sleep(0.2)
👉 这一步非常关键,很多网站会检测输入速度!
七、完整实战示例(推荐收藏)
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import random
driver = webdriver.Chrome()
driver.get("https://example.com")
# 模拟输入
input_box = driver.find_element(By.ID, "search")
for c in "Python":
input_box.send_keys(c)
time.sleep(random.uniform(0.1, 0.3))
# 点击搜索
driver.find_element(By.ID, "btn").click()
# 等待加载
time.sleep(random.uniform(2, 4))
# 滚动页面
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
print(driver.page_source)
driver.quit()
八、防封核心技巧总结(重点)
| 技术 | 作用 |
|---|---|
| Selenium | 绕过JS限制 |
| 随机延迟 ⭐ | 防止频率异常 |
| 慢速输入 ⭐ | 模拟真人 |
| 滚动页面 | 模拟浏览行为 |
| 显式等待 | 防止加载失败 |
九、常见问题
❓ 为什么 Selenium 很慢?
👉 因为它是真实浏览器(不是接口请求)
❓ 为什么还是被封?
👉 可能缺少:
- 代理IP
- 浏览器指纹伪装
十、进阶方向(爆款内容)
如果你想继续提升,可以写这些:
- 🔥 Selenium + 代理IP池
- 🔥 无头浏览器(Headless)
- 🔥 破解登录(Cookie复用)
- 🔥 自动化抢票 / 抢商品
十一、总结
👉 requests 解决不了的:
用 Selenium 基本都能解决
✔ 动态网页
✔ JS加载
✔ 登录操作
转载自CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/gust2013/article/details/159767303



