首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过selenium读取文本值

如何通过selenium读取文本值
EN

Stack Overflow用户
提问于 2021-04-01 09:02:00
回答 2查看 54关注 0票数 0

我想抓取电子元器件的DigiKey值。

我可以访问供应商信息。使用selenium & python。但是我看不懂文字“阿尔法和欧米茄半导体公司”。

请帮帮我。

https://www.digikey.com/en/products/detail/alpha-omega-semiconductor-inc/AOD4180/2353884?s=N4IgTCBcDaIIIHkAiAWAjADgAwgLoF8g

代码语言:javascript
复制
from selenium import webdriver

chromedriver = '/Users/username/Django/chromedriver'
driver = webdriver.Chrome(chromedriver)

input_box = driver.find_element_by_class_name("product-search-text")
input_box.send_keys('AOD4180')
driver.find_element_by_id("header-search-button").click()

table = driver.find_elements_by_xpath("//tbody[@class='MuiTableBody-root']")[0]
print(table)

trs = table.find_elements_by_xpath("tr")
print(len(trs), type(trs), dir(trs))

tr = table.find_elements_by_xpath("tr")[3]
print(type(tr), dir(tr))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-01 09:11:01

当您找到带有"s“的元素时,您将找到多个selenium webdriver元素对象。当您找到一个没有"s“的元素时,您将找到一个selenium webdriver元素对象。每一个都有一个将这些对象转换为文本的element.text属性。

尝尝这个。

代码语言:javascript
复制
trs = [i.text for i in table.find_elements_by_xpath("tr")]
票数 0
EN

Stack Overflow用户

发布于 2021-04-01 09:35:59

您应该使用.text从元素中获取文本。

但是在每个tr中,你应该找到所有的td,并从第二个td获取文本。最好使用相对路径-以./开头-仅在选定的tr中进行搜索。如果没有./,它将始终从根目录搜索,并且可能始终获得相同的元素。

顺便说一句:如果你只需要第一个table,那么你可以在word element中使用不带字符sfind_element_... -然后你就不需要[0]

代码语言:javascript
复制
from selenium import webdriver

#chromedriver = '/Users/username/Django/chromedriver'
#driver = webdriver.Chrome(chromedriver)
driver = webdriver.Firefox()

driver.get('https://www.digikey.com/en/products/')

input_box = driver.find_element_by_class_name("product-search-text")
input_box.send_keys('AOD4180')
driver.find_element_by_id("header-search-button").click()

table = driver.find_element_by_xpath("//tbody[@class='MuiTableBody-root']")
#print(table)

trs = table.find_elements_by_xpath("./tr")
for row in trs:
    print('row: >>>', row.text, '<<<')
    for item in row.find_elements_by_xpath("./td"):
        print('  item.text:', item.text)

print('---')

item = trs[3].find_elements_by_xpath("./td")[1]
print('item.text:', item.text)

结果:

代码语言:javascript
复制
row: >>> Digi-Key Part Number
785-1219-2-ND - Tape & Reel (TR)
785-1219-1-ND - Cut Tape (CT)
785-1219-6-ND - Digi-Reel® <<<
  item.text: Digi-Key Part Number
  item.text: 785-1219-2-ND - Tape & Reel (TR)
785-1219-1-ND - Cut Tape (CT)
785-1219-6-ND - Digi-Reel®
  item.text: 
row: >>> Manufacturer
Alpha & Omega Semiconductor Inc. <<<
  item.text: Manufacturer
  item.text: Alpha & Omega Semiconductor Inc.
  item.text: 
row: >>> Manufacturer Product Number
AOD4180 <<<
  item.text: Manufacturer Product Number
  item.text: AOD4180
  item.text: 
row: >>> Supplier
Alpha & Omega Semiconductor Inc. <<<
  item.text: Supplier
  item.text: Alpha & Omega Semiconductor Inc.
  item.text: 
row: >>> Description
MOSFET N-CH 80V 10A/54A TO252 <<<
  item.text: Description
  item.text: MOSFET N-CH 80V 10A/54A TO252
  item.text: 
row: >>> Detailed Description
N-Channel 10A (Ta), 54A (Tc) 3.1W (Ta), 150W (Tc) Surface Mount TO-252, (D-Pak) <<<
  item.text: Detailed Description
  item.text: N-Channel 10A (Ta), 54A (Tc) 3.1W (Ta), 150W (Tc) Surface Mount TO-252, (D-Pak)
  item.text: 
row: >>> Customer Reference <<<
  item.text: Customer Reference
  item.text: 
---
item.text: Alpha & Omega Semiconductor Inc.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66897164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档