2024-05-28 22:48:39 发布
网友
虽然我知道元素总是存在,但我一直在抓取网页,并不断收到NoTouchElement错误(每2或3次成功尝试一次),这是一个电子商务网站,它是存储产品名称的元素。经过长时间的挫折和100个失败的解决方案,我意识到该元素的类名有时会改变,我想知道为什么。html代码是相同的,只是类名不同
有时,具有明显相同结构的元素可能会随着网站的更新或网格中某些元素的特定位置而改变
例如,由于下面的橙色横幅,我假设网格的第一张卡片具有不同的h2类,这可能需要与其他类的其他标题不同的填充值
如果要查找产品的标题,可以使用类似.card-section-mid h2的内容来标识元素,而不必使用特定的类名
.card-section-mid h2
因此,您需要执行以下操作:
title = card.find_element_by_css_selector('.card-section-mid h2') #card assuming you've already selected the card element
web抓取的最佳解决方案是寻找API
第二个最好的解决方案是找到这样一个强大的选择器,它能够经受住时间的考验或版面的变化。在这种情况下,div.card-section-mid中包含的第一个h2似乎总是包含标题。因此,这是一个最受欢迎的目标,以选择网页刮削的目的
div.card-section-mid
有时,具有明显相同结构的元素可能会随着网站的更新或网格中某些元素的特定位置而改变
例如,由于下面的橙色横幅,我假设网格的第一张卡片具有不同的h2类,这可能需要与其他类的其他标题不同的填充值
如果要查找产品的标题,可以使用类似
.card-section-mid h2
的内容来标识元素,而不必使用特定的类名因此,您需要执行以下操作:
web抓取的最佳解决方案是寻找API
第二个最好的解决方案是找到这样一个强大的选择器,它能够经受住时间的考验或版面的变化。在这种情况下,
div.card-section-mid
中包含的第一个h2似乎总是包含标题。因此,这是一个最受欢迎的目标,以选择网页刮削的目的相关问题 更多 >
编程相关推荐