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