【问题标题】:How to scrape this line with selenium in Python?如何在 Python 中用 selenium 刮掉这条线?
【发布时间】:2021-07-30 09:43:51
【问题描述】:

嘿,所以我正在使用 selenium 并试图刮掉这一行:

<em id="home-payOrderCommission" data-spm-anchor-id="portals._cps_home.overview.i0.6da22fe0oBPXYk">US $7.68</em>

我正在尝试抓取 7.68 美元的部分,但我不知道该怎么做,我尝试了元素 ID,但它似乎不起作用

这是我尝试过的:

search = driver.find_element_by_id("portals._cps_home.overview.i0.2e1b2fe03tjTTD").text
print(search)

【问题讨论】:

  • 'to scrap this line' 的意思是'把这条线像垃圾一样扔掉'。正确的术语是 scrape

标签: python selenium selenium-webdriver web-scraping


【解决方案1】:

您使用了错误的id

改用这个:

id = 'home-payOrderCommission'

在代码中:

search = driver.find_element_by_id("home-payOrderCommission").text
print(search)

或者这里更好的方法是使用显式等待

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
print(wait.until(EC.visibility_of_element_located((By.ID, "home-payOrderCommission"))).text)

PS :-

.text 是 Selenium-Python 绑定中可用的一种方法,主要用于 在您的情况下获取 ID 标签之间的文本,一般来说 提取网页元素的文本。

【讨论】:

  • 非常感谢!你介意解释一下为什么我需要 .text 部分吗?我是新手
  • .text 是 Selenium-Python 绑定中可用的一种方法,基本上是在您的情况下获取 ID 标签之间的文本,通常是提取 Web 元素的文本。我也更新了答案。
  • 谢谢,关于显式等待,如果网站立即加载是否需要?另外, time.sleep(3) 不会做同样的事情吗?
  • 看,time.sleep(3) 也是一个明确的等待,但最糟糕的是。因为这样它总是会等待确切的时间。使用 WebDriverWait(),它会在 500 毫秒的间隔后尝试查找 Web 元素。如果找到返回它,如果没有引发超时异常
  • 您可以在此处阅读更多信息(官方网站)selenium.dev/documentation/en/webdriver/waits
【解决方案2】:

您使用了错误的定位器。
从您提供的元素可以看出,它具有id 属性,其值为home-payOrderCommissiondata-spm-anchor-id 属性,其值为portals._cps_home.overview.i0.6da22fe0oBPXYk
所以,要使用find_element_by_id 方法,值是home-payOrderCommission
试试这个:

search = driver.find_element_by_id("home-payOrderCommission").text
print(search)

【讨论】:

  • 非常感谢!你介意解释一下为什么我需要 .text 部分吗?我是新手
  • 当然。 driver.find_element_by_id("home-payOrderCommission") 返回一个 Web 元素。您可以单击它等。要提取它的文本,您可以在 web 元素对象上应用 .text,它会为您提供元素文本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-27
  • 1970-01-01
  • 2015-08-15
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多