使用 Selenium 添加到亚马逊购物车 python

Adding to Cart in Amazon using Selenium python

我想使用 Selenium(在 python 中)将商品添加到我的亚马逊购物车。具体来自以下页面: https://www.amazon.com/gp/offer-listing/B01GHQ02DK/ie=UTF8&condition=all **将此link复制到浏览器中,不要直接点击。

如您所见,有多个选项可供选择以添加到您的购物车。查看源代码,我不知道如何 "click the button" 将我想要的选择添加到购物车(例如,假设我想要列表中的第二个)。非常感谢任何帮助,谢谢。

编辑:添加了我想要完成的示例代码。需要帮助填空。

from selenium import webdriver

url = "https://....**website posted above**"
driver = webdriver.Firefox()
driver.get(url)  

def add2ndItemToCart():
    # Don't know what to put here

add2ndItemToCart()

使用 selenium 你只需要为按钮找到一个唯一的选择器(在本例中只是 id),使用方法 find_element_by_id 最后 click() 来模拟点击:

driver.find_element_by_id('add-to-cart-button').click()

您可以执行此操作以单击第一个 "BY New" 选项:

from selenium import webdriver

url="https://www.amazon.com/dp/B01GHQ02DK/"
driver=webdriver.Firefox()
driver.maximize_window()
driver.get(url)
driver.implicitly_wait(5)
driver.find_element_by_name('submit.add-to-cart').click()

而对于 "By used",您必须先单击单选按钮,然后单击添加到购物车按钮,示例代码如下:

from selenium import webdriver

url="https://www.amazon.com/dp/B01GHQ02DK/"
driver=webdriver.Firefox()
driver.maximize_window()
driver.get(url)
driver.implicitly_wait(5)
driver.find_element_by_xpath(".//*[@id='usedBuySection']/i").click()
driver.find_element_by_name('submit.add-to-cart-ubb').click()

有多种方法可以识别您要单击的按钮。一种简单的方法是获取它的 xpath。 Chrome 有一个方便的方法来做到这一点。右键单击按钮和 select 'inspect element'。将打开一个新框架,按钮的 HTML 代码将突出显示。右键单击此突出显示的行,然后 select 复制并滑到 select 'Copy XPath'。然后您可以使用 find_element_by_xpath('xpath').click() 将 'xpath' 替换为您从检查元素复制的内容。参见代码示例:

from selenium import webdriver
from time import sleep

url = "https://www.amazon.com/gp/offer-listing/B01GHQ02DK/ie=UTF8&condition=all"

driver = webdriver.Chrome()
driver.get(url)

sleep(3)

driver.find_element_by_xpath('//*[@id="a-autoid-1"]/span/input').click()

我猜您在某些页面上查找的内容并不总是最终成为第二项。当您检查 html 时,您会看到每一行都有一些独特的信息,您可以轻松地遍历所有适当的元素以选择适合您的元素,例如;最好的价格,最高的评级等。W3Schools 有一个非常好的 XPath 教程。

此外,使用睡眠并不是等待页面加载的最佳方式。我在这个例子中使用它是为了方便。