簡體   English   中英

Web 刮入 Selenium Python

[英]Web scraping in Selenium Python

 <div class="valuesWrapper-1ukbb5SP-"> <div class="valuesAdditionalWrapper-3BfAIuML-"> <div class="valueItem-3JDGGSt_-"> <div class="valueTitle-1myNPdtH-">O</div> <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.28926</div> </div> <div class="valueItem-3JDGGSt_-"> <div class="valueTitle-1myNPdtH-">H</div> <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.29054</div> </div> <div class="valueItem-3JDGGSt_-"> <div class="valueTitle-1myNPdtH-">L</div> <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.28844</div> </div> <div class="valueItem-3JDGGSt_-"> <div class="valueTitle-1myNPdtH-">C</div> <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.28871</div> </div> <div class="valueItem-3JDGGSt_- blockHidden-2yyjdJcY-"> <div class="valueTitle-1myNPdtH- blockHidden-2yyjdJcY-"></div> <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">1.28871</div> </div> <div class="valueItem-3JDGGSt_- blockHidden-2yyjdJcY-"> <div class="valueTitle-1myNPdtH- blockHidden-2yyjdJcY-"></div> <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);"></div> </div> <div class="valueItem-3JDGGSt_-"> <div class="valueTitle-1myNPdtH- blockHidden-2yyjdJcY-"></div> <div class="valueValue-3kA0oJs5-" style="color: rgb(239, 83, 80);">−0.00055 (−0.04%)</div> </div> </div> </div>


我想從上面的 HTML 代碼中刮取 1.28926、1.29054、1.28844、1.28871、+0.00040 (+0.03%)。

這是我的代碼:

total_data = []
count_elements = [i.text for i in WebDriverWait(browser, 20).until(
    EC.presence_of_all_elements_located((By.XPATH, "//div[@class='valueItem-3JDGGSt_-']//div["
                                                   "@class='valueValue-3kA0oJs5-']")))]
for e in count_elements:
    total_data.append(e)
print(total_data)

但我的結果是

['n/a', 'n/a', 'n/a', '1.28871', '+0.00040 (+0.03%)']

我怎樣才能使我的代碼工作?

嘗試將預期條件更改為presence_of_all_elements_located () 到visibility_of_all_elements_located () 並使用 python 邏輯獲取前三個記錄。

total_data = []
count_elements = [i.text for i in WebDriverWait(browser, 20).until(
    EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='valueItem-3JDGGSt_-']//div["
                                                  "@class='valueValue-3kA0oJs5-']")))]
for e in count_elements[:3]:
    total_data.append(e)
print(total_data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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