博客导语
requests只能爬静态网页,JS动态渲染、Ajax加载数据的页面源码为空,普通爬虫完全失效。Selenium模拟真实浏览器,自动加载JS,完美解决动态网页爬取问题。
一、Selenium核心原理
启动真实浏览器内核,自动加载JS、渲染页面、等待数据异步加载,所见即所得,无视基础JS动态加密。
二、入门实战代码
from selenium import webdriver from selenium.webdriver.common.by import By import time # 启动浏览器 driver = webdriver.Chrome() driver.get("https://www.baidu.com") # 查找元素 input_box = driver.find_element(By.ID, "kw") input_box.send_keys("Python爬虫") time.sleep(2) driver.quit()三、动态爬虫优势与劣势
优点:无需分析接口、无视JS渲染、适配99%动态网页
缺点:速度慢、资源占用高、易被检测自动化特征
四、基础优化方案
无头模式(静默运行无浏览器窗口)
关闭自动化提示
智能等待替代固定sleep