【发布时间】:2020-11-22 04:10:26
【问题描述】:
我想下载网页的完整 html,为此我编写了一些代码。但是,当我回去查看下载的 html 时,我发现那里只有大约一半的 html。我认为这是因为网页是动态的,并且在您与页面交互时会加载更多信息。我一直在尝试使用 PhantomJS 与 ChromeDriver Manager 一起执行此操作,但没有运气。这是只下载部分html的代码(我再次相信,因为页面是动态的):
from bs4 import BeautifulSoup
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import os
import re
import time
driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
driver.get(''https://medium.com/@benjaminhardy')
time.sleep(25)
html = driver.page_source
driver.close()
这是我对 PhantomJS 的尝试,但没有运气:
driver = webdriver.Chrome(ChromeDriverManager().install().PhantomJS())
driver.get('https://medium.com/@benjaminhardy')
html = driver.page_source
time.sleep(25)
driver.close()
error:'str' object has no attribute 'PhantomJS'
【问题讨论】:
-
“不走运”是指 PhantomJS 驱动程序没有明显区别?
-
是的@Daveldito,我的印象是 PhantomJS 会在下载之前呈现完整的 html,但我不熟悉它。
-
遗憾的是,我从未使用过 PhantonJS,但这可能会对您有所帮助:stackoverflow.com/questions/28928068/… 我在您的代码中没有看到您实际滚动和加载到页面末尾的任何地方(正如我说,我自己也不知道怎么处理 Phantomjs)
标签: python html selenium-webdriver phantomjs href