[英]Python selenium wont print entire page
我正在嘗試從 web 頁面獲取 html 代碼,但我只顯示了頁面的 1/4。
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.hltv.org/matches")
print(driver.page_source)
感覺就像我已經嘗試了一切但仍然得到相同的結果。 它不是從頂部開始的。 它從很遠很遠的地方開始,幾乎在盡頭。
有人知道嗎?
試試下面的代碼。 這對我有用
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.hltv.org/matches")
file = open("asd.html", "a", encoding='utf8')
file.write(driver.page_source)
file.close()
這可能是因為您的 get 在打印時尚未完成頁面加載。
要解決此問題,您可以嘗試在打印前等待已知元素加載。
要等待元素(下例中的“backToLoginDialog”)加載,請將代碼調整為如下所示:
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
# set up driver and page load timeout
driver = webdriver.Chrome()
timeout = 5
# create your "wait" function
def wait_for_load(element_id):
element_present = EC.presence_of_element_located((By.ID, element_id))
WebDriverWait(driver, timeout).until(element_present)
driver.get('https://www.hltv.org/matches')
wait_for_load('backToLoginDialog')
print(driver.page_source)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.