from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Replace with the URL of the website you want
url = "https://www.example.com"
# Adding the option for headless browser
options = webdriver.ChromeOptions()
options.add_argument("headless")
driver = webdriver.Chrome(options=options)
# Create a new instance of the Chrome webdriver
driver = webdriver.Chrome()
driver.get(url)
# Wait for the additional HTML elements to load
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_all_elements_located((By.XPATH, "//*[contains(@class, 'lazy-load')]")))
# Get HTML
html = driver.page_source
print(html)
driver.close()
1条答案
按热度按时间fnx2tebb1#
您可以使用BeautifulSoup库或Selenium来模拟类似于用户的页面加载和等待加载其他HTML元素。
我建议使用Selenium,因为它包含WebDriverWait类,可以帮助您抓取额外的HTML元素。
这是我的简单例子:
在上面的例子中,你可以看到我正在使用explicit wait等待(10秒)一个特定的条件发生。更具体地说,我正在等待,直到带有'lazy-load'类的元素被.XPath定位,然后我检索HTML元素。
最后,我建议检查BeautifulSoup和Selenium,因为它们都有强大的功能来废弃网站和自动化基于Web的任务。