python+selenium動的ロード(ドロップダウンロード)のページ内容を収集し、自動的にドロップダウンスクロールバー

6902 ワード

ソフトウェアのバージョン:
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://wenku.baidu.com/search?lm=0&od=0&ie=utf-8&word=csdn")
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:
        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採集ダイナミックドロップダウンロードページであり、上記のコードを使用して実行すると、他の方法でページ要素の取得が可能になります.