我创建了第一个用于页面抓取的python脚本-->;以便访问网页、登录、重定向到另一个页面(导航),然后从特定部分复制文本。在
当我尝试以下方法时,效果很好:
copiedText = driver.find_element_by_id("random").text
print(copiedText )
但它有点复杂,因为我要复制的文本的div没有ID,它有一个类,但不是唯一的。当我在Chrome中复制xPath时,它会返回如下内容:
^{pr2}$每天都不一样。数字12和5可能不同,具体取决于页面中显示的数据(HTML表中的更多行)。在
所以,作为一个计划B,我在从Chrome复制CSS选择器之后尝试使用CSS选择器。在
但我得到一个错误:
消息:没有此类元素:无法定位元素:
有没有可能Chrome没有给我正确的选择?如何将outerHTML转换为CSS选择器,以便百分之百确定它是正确的?在
外部TML如下所示:
<div class="nxm-td col-total text-right" style="">
<div class="summary-total">
<span class="summary number">7,363.31</span>
</div>
</div>
从Chrome dev tools复制后的选择器如下:
#media-grid-right > div.nxm-tr.nxm-drop.media-plan-drop.mpSummary.summary-row.no-filter > div.nxm-td.col-total.text-right
升级版
下面的操作很好:Dates = wait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#summary > li:nth-child(1)"))).text
这个命令没有返回错误,但是我在cmd中没有看到任何文本:copiedText = wait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#media-grid-right > div.nxm-tr.nxm-drop.drop.mpSummary.summary-row.no-filter > div.nxm-td.col-total.text-right > div > span.summary.number"))).text
尝试按类名查找所需节点:
另请注意,节点可以动态生成,因此您可能需要等到它出现在DOM中:
^{pr2}$相关问题 更多 >
编程相关推荐