我正在尝试访问https://gaming.youtube.com/live的DOM,并且使用ChromeDriver工作正常,但我使用PhantomJS失败了。
问题在于PhantomJS正在加载page_source中的所有内容,但似乎并不处理大部分HTML标记。
我调查了问题所在,看起来好像是
之间的所有元素<ytg-app>
<ytg-auth-helper>
</ytg-auth-helper>
</ytg-app>
PhantomJS中缺少。
保存PhantomJS的屏幕截图时,我只看到网站本身的背景颜色,没有任何内容。
为什么会这样?我已经尝试等待加载元素,编辑service_args,更改窗口大小,使用不同的用户代理但似乎没有任何工作,我不知道为什么。
代码:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
url = "https://gaming.youtube.com/live"
phantomjs_path = 'pathto\phantomjs.exe'
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = ('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36')
driver = webdriver.PhantomJS(executable_path=phantomjs_path,
service_log_path=os.path.devnull,
desired_capabilities=dcap,
service_args=['--ignore-ssl-errors=true', '--ssl-protocol=ANY'])
driver.set_window_size(1200,1000)
driver.get(url)
driver.save_screenshot('test.png')