所以,我现在有一段看起来像这样的工作代码;
if browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]"):
snipes = browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]")
else:
print "Cant find snipes.. Retrying..."
browser.get("https://www.rolimons.com/deals")
time.sleep(2)
print "Reloaded browser... Retrying..."
if browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]"):
snipes = browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]")
else:
print "Shutting down engine..."
browser.quit()
checking = False
print "Restarting script..."
break
一切正常。它有60个元素。现在我只需要前10个。我怎么能让它只有find_elements_by_xpath
限制为10?
有没有办法做到这一点?
谢谢!
====编辑====
此代码目前需要4秒。我希望通过将最大值设置为10来减少这个时间。
您可以使用:
//[yourXpath]/*[position()<=10]
在你的情况下
//div[contains(@class, 'dealspg_item_cell')]/*[position()<=10]
虽然使用xpath是很好的答案。您还可以根据各自的性能引用css选择器。我个人遇到过这样的问题,其中xpath不起作用,但CSS选择器是
div.dealspg_item_cell:nth-child(-1n+10)
解释nth-child(-1n+10)
+10
在这里指示节点位置,我们要从第10个节点之前的所有节点中选择元素-1n
让我们说总共有11个元素然后选择会是这样的:
另一个例子是nth-child(1n+10)
,它表示第10个节点之后的所有其他节点
您可以从here探索更多