使用 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 教程。
此外,使用睡眠并不是等待页面加载的最佳方式。我在这个例子中使用它是为了方便。
我想使用 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 教程。
此外,使用睡眠并不是等待页面加载的最佳方式。我在这个例子中使用它是为了方便。