我想抓取电子元器件的DigiKey值。
我可以访问供应商信息。使用selenium & python。但是我看不懂文字“阿尔法和欧米茄半导体公司”。
请帮帮我。

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))发布于 2021-04-01 09:11:01
当您找到带有"s“的元素时,您将找到多个selenium webdriver元素对象。当您找到一个没有"s“的元素时,您将找到一个selenium webdriver元素对象。每一个都有一个将这些对象转换为文本的element.text属性。
尝尝这个。
trs = [i.text for i in table.find_elements_by_xpath("tr")]发布于 2021-04-01 09:35:59
您应该使用.text从元素中获取文本。
但是在每个tr中,你应该找到所有的td,并从第二个td获取文本。最好使用相对路径-以./开头-仅在选定的tr中进行搜索。如果没有./,它将始终从根目录搜索,并且可能始终获得相同的元素。
顺便说一句:如果你只需要第一个table,那么你可以在word element中使用不带字符s的find_element_... -然后你就不需要[0]了
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)结果:
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.https://stackoverflow.com/questions/66897164
复制相似问题