当前位置: 首页 > 面试题库 >

Selenium无法使用python抓取Shopee电子商务网站

郝峰
2023-03-14
问题内容

我无法在Shopee(电子商务网站)上拉低产品的价格。 我看了@dmitrybelyakov解决的问题)。

该解决方案帮助我获得了产品的“名称”和“
historical_sold”,但我无法获得产品的价格。我在Json字符串中找不到价格值。因此,我尝试使用Selenium通过xpath提取数据,但似乎失败了。

电子商务网站的链接:https :
//shopee.com.my/search? keyword
=h370m

我的代码:

import time

from selenium import webdriver

import pandas as pd

path = r'C:\Users\\admin\\Desktop\\chromedriver_win32\\Chromedriver'

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('headless')
chrome_options.add_argument('window-size=1200x600')

browserdriver = webdriver.Chrome(executable_path = path,options=chrome_options)
link='https://shopee.com.my/search?keyword=h370m'
browserdriver.get(link)
productprice='//*[@id="main"]/div/div[2]/div[2]/div/div/div/div[2]/div/div/div[2]/div[1]/div/a/div/div[2]/div[1]'
productprice_printout=browserdriver.find_element_by_xpath(productname).text
print(productprice_printout)

当我运行该代码时,它显示如下错误通知:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="main"]/div/div[2]/div[2]/div/div/div/div[2]/div/div/div[2]/div[1]/div/a/div/div[2]/div[1]"}

请帮助我在Shopee上获得产品的价格!


问题答案:

要使用Selenium和 _Python_提取Shopee]上的产品价格,您可以使用以下解决方案:

  • 代码块:

    from selenium import webdriver
    

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC

    options = webdriver.ChromeOptions()
    options.add_argument(‘–headless’)
    options.add_argument(‘start-maximized’)
    options.add_argument(‘disable-infobars’)
    options.add_argument(‘–disable-extensions’)
    browserdriver = webdriver.Chrome(chrome_options=options, executable_path=r’C:\WebDrivers\chromedriver.exe’)
    browserdriver.get('https://shopee.com.my/search?keyword=h370m’)
    WebDriverWait(browserdriver, 20).until(EC.element_to_be_clickable((By.XPATH, “//div[@class=’shopee-modal__container’]//button[text()=’English’]”))).click()
    print([my_element.text for my_element in WebDriverWait(browserdriver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, “//span[text()=’RM’]//following::span[1]”)))])
    print(“Program Ended”)

  • 控制台输出:

    ['430.00', '385.00', '435.00', '409.00', '479.00', '439.00', '479.00', '439.00', '439.00', '403.20', '369.00', '420.00', '479.00', '465.00', '465.00']
    

    Program Ended



 类似资料:
  • 在此之前,我发布了一个关于如何从AJAX网站获取数据的问题,该网站来自以下链接:使用python抓取AJAX电子商务网站 我对如何使用chrome F12 in Network选项卡获得响应有点了解,并使用python进行一些编码以显示数据。但我几乎找不到它的特定API url。JSON数据不像以前的网站那样来自URL,但它位于Chrome F12中的Inspect元素中。 > 还有一个问题是,在

  • 问题内容: 在网站上,有在标顶部的几个环节,,,和。如果按下以数字标记的链接,它将动态地将一些数据加载到content中。如果被按下,它会用标签页,,,和第4页中的数据显示。 我想从按下的所有链接的内容中抓取数据(我不知道有多少,一次只显示3个,然后) 请举一个例子。例如,考虑网站www.cnet.com。 请指导我下载使用selenium的一系列页面,并自行解析它们以处理漂亮的汤。 问题答案:

  • 主要内容:最受欢迎的支付网关提供商支付网关是一种在线支付处理技术,帮助企业接受信用卡和电子支票。 换句话说,支付网关是位于电子商务平台和客户之间的“中间人”(Manin-the-middle)。 支付网关允许 - 快速轻松地付款。 保持客户的数据(信息)和金钱的安全。 获得客户的信任,所以他们愿意交出钱。 要选择正确的支付网关,应遵循以下准则 - 应该确定您所在国家支持的支付网关,而不是全部在全球运营。 应该检查您的电子商务平台支

  • 我正在考虑建立一个电子商务网站,并想知道支付方面的事情。 经过一些搜索,我看到了Stripe,它似乎非常类似于贝宝和谷歌结账。 我有几个关于Stripe和电子商务的问题。 Stripe的优势/劣势是什么,有没有我应该了解的竞争对手? 谢谢

  • 我想从约翰·霍普金斯大学的新冠病毒仪表盘中找出死亡总人数。我想使用Selenium、Python和Selenium的chrome驱动程序来实现这一点。死亡人数可在路径下找到。 这是我的剧本: 它失败,错误为“无此类元素: 这种情况也发生在其他我正在努力抓取的网站上。 我怎样才能解决这个问题?这个错误的原因是什么?

  • 我试图用Java在Selenium Webdriver中自动化电子商务网站上的购买(仅用于培训)。当我点击添加到购物车,弹出窗口出现“继续购物”或“继续结帐”按钮。问题是,Selenium无法检测结帐按钮。在进一步的研究(issplayed())中,我发现它无法检测整个弹出窗口,我得到的只是ElementNotVisibleException。 我尝试了以下选项:1)检查是否有多个windowha