我试图获得公告牌100强排行榜的超文本标记语言,但我只得到了大约一半的页面。
我尝试使用以下代码获取页面源代码:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
s=Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=s)
url = "https://www.billboard.com/charts/hot-100/"
driver.get(url)
driver.implicitly_wait(10)
print(driver.page_source)
但它总是只返回排行榜上第53首歌曲的页面源代码(我尝试增加隐式等待,但没有任何变化)
2条答案
按热度按时间bzzcjhmw1#
不知道为什么你会得到53个元素。使用显式等待,我得到了所有100个元素。
用户webdriverWait()作为显式等待。
需要导入下面的库。
输出:
zzoitvuj2#
driver.implicitly_wait(10)
不是暂停命令!它对下一行
print(driver.page_source)
没有影响。如果您想要等待页面完全加载,您可以等待某些特定的元素可见。为此,使用
WebDriverWait
expected_conditions
。或者只添加硬编码暂停time.sleep(10)
而不是driver.implicitly_wait(10)