使用selenium模拟登录时有界面和无界面浏览器网页源码为何不一样

driver = webdriver.Chrome()
# 打开网页
driver.get('https://jxgl.bistu.edu.cn:8443/zfca/login')
# 打印网页源码
print(driver.page_source)

图片说明

# 设置为无界面浏览器
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://jxgl.bistu.edu.cn:8443/zfca/login')
print(driver.page_source)

图片说明

如上图所示,有界面浏览器能获取到网页的源码,但是改为无界面浏览器的时候却获取不到了...希望有大佬帮我解决一下!

加上

options.addArguments("--no-sandbox");
options.addArguments("--disable-plugins","--disable-images","--start-maximized","--disable-javascript");//禁用插件

可能使一些元素是ajax加载的,在无界面的情况下,计算它们的坐标在显示范围外,所以没有触发加载。
可以抓包分析,然后直接请求这些地址获取数据。