Python Amazon动态更改CSS浏览器和HTML对象的名称?

Python Amazon动态更改CSS浏览器和HTML对象的名称?,python,html,css,selenium,web-scraping,Python,Html,Css,Selenium,Web Scraping,我使用Selenium构建了一个Amazon.es web scraper 我使用CSS选择器来查找总页数,以确定循环将迭代多少次 但是每天,我都必须返回并更新选择器名称,因为它似乎是动态变化的 我不太擅长HTML/CSS,他们是怎么做到的 昨天起作用的选择器: lastPage=browser。通过css选择器'div.s-desktop-width-max.s-desktop-content.sg-row>div.sg-col-20-of-24.sg-col-28-of-32.sg-col-

我使用Selenium构建了一个Amazon.es web scraper

我使用CSS选择器来查找总页数,以确定循环将迭代多少次

但是每天,我都必须返回并更新选择器名称,因为它似乎是动态变化的

我不太擅长HTML/CSS,他们是怎么做到的

昨天起作用的选择器:

lastPage=browser。通过css选择器'div.s-desktop-width-max.s-desktop-content.sg-row>div.sg-col-20-of-24.sg-col-28-of-32.sg-col-16-of-20.sg-col.sg-col-32-of-36.sg-col-8-of-12.sg-col-12-of-16.sg-col-24-of-28>div>李:N-child6'

今天起作用的选择器:


lastPage=浏览器。通过css选择器'div.s-desktop-width-max.s-desktop-content.sg-row>div.sg-col-20-of-24.sg-col-28-of-32.sg-col-16-of-20.sg-col.sg-col-32-of-36.sg-col-8-of-12.sg-col-12-of-16.sg-col-24-of-28>div>n:nth-child5>div.s-s-main-slot.s-result-list.s-search-results-row>李:N-child6'

我不知道你想完成什么。但是,您可以通过使用xpath使用正则表达式

    Syntax
    -//tagName[contains(@attribute,’value’)]

据说亚马逊每分钟都会推送大量的更新。正如您所发现的,这些css选择器可能会随时更改,这并不是深入研究的可靠方法。根据您试图实现的目标,AmazonAPI可能是比web抓取更好的解决方案。我尝试使用XPath,但不知道可以在其中使用contains。自从使用browser.find_elements_by_class_name以来,我想出了另一种解决方案。我的意图是从最后一个可点击的页面中提取一个整数,以了解我需要迭代循环多少次。但是,你的答案是有效的,我会将其标记为解决方案!