簡體   English   中英

Python selenium 不會打印整頁

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM