您好,登錄后才能下訂單哦!
軟件版本:
python 3.7.2
selenium 3.141.0
pycharm 2018.3.5
具體實現代碼如下:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
# 創建chrome瀏覽器驅動,無頭模式
chrome_options = Options()
# chrome_options.add_argument('--headless')
chrome_options.add_argument("--start-maximized");
driver = webdriver.Chrome("D://googleDever//chromedriver.exe",chrome_options=chrome_options)
# 加載界面
driver.get("https://www.cfr.org/search?keyword=china")
time.sleep(3)
# 獲取頁面初始高度
js = "return action=document.body.scrollHeight"
height = driver.execute_script(js)
# 將滾動條調整至頁面底部
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
time.sleep(5)
#定義初始時間戳(秒)
t1 = int(time.time())
#定義循環標識,用于終止while循環
status = True
# 重試次數
num=0
while status:
# 獲取當前時間戳(秒)
t2 = int(time.time())
# 判斷時間初始時間戳和當前時間戳相差是否大于30秒,小于30秒則下拉滾動條
if t2-t1 < 30: 無錫看婦科好的醫院 http://www.csfk0731.com/
new_height = driver.execute_script(js)
if new_height > height :
time.sleep(1)
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
# 重置初始頁面高度
height = new_height
# 重置初始時間戳,重新計時
t1 = int(time.time())
elif num < 3: # 當超過30秒頁面高度仍然沒有更新時,進入重試邏輯,重試3次,每次等待30秒
time.sleep(3)
num = num+1
else: # 超時并超過重試次數,程序結束跳出循環,并認為頁面已經加載完畢!
print("滾動條已經處于頁面最下方!")
status = False
# 滾動條調整至頁面頂部
driver.execute_script('window.scrollTo(0, 0)')
break
# 打印頁面源碼
content = driver.page_source
print(content)
以上代碼為selenium采集動態下拉加載頁面,使用上述代碼執行后,可通過其他方式進行頁面元素獲取!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。