检索类文本并迭代所有页

2024-05-19 00:02:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着从一个网站上检索爱普生产品的制造商编号。你知道吗

from selenium import webdriver

driver = webdriver.Chrome( "C:\All\chromedriver_win32\chromedriver.exe" )
driver.get('https://shop.techdata.com/searchall?b=1&kw=printer')
items = driver.find_elements_by_class_name( 'productDetailsLink' )

for i, item in enumerate(items):
    if 'EPSON' in item.text:
        MFR= item.find_element_by_xpath( './/span[@class = "darkTxt"]')
        print (i, item.text,MFR)

我正确地检索到了“I”,但是只有爱普生产品的MFR出现了问题,我无法检索MFR。我得到一个错误,说没有元素在MFR中找到。接下来我想去下一页,并检索制造商爱普生也有。我不能那样做。你知道吗

错误

Unable to locate element: {"method":"xpath","selector":".//span[@class = "darkTxt"]"}

我是个新手,所以请帮帮我! 谢谢。你知道吗


Tags: textinby产品driveritemselementfind
2条回答

问题是您正在查找作为父元素的link,如果您看到html代码,link没有任何子元素。你知道吗

您需要找到包含所有信息的整个Div作为父元素。其中包含以下HTML代码

<div class="productResult js-productResult unpriced needsLogin">

下面的代码片段将只对父元素进行一个小的更改。你知道吗

driver.get('https://shop.techdata.com/searchall?b=1&kw=printer')
items = driver.find_elements_by_class_name('productResult')

    for i, item in enumerate(items):
        if 'EPSON' in item.text:
            MFR = item.find_element_by_xpath('.//span[@class = "darkTxt"]')
            print (i, item.text, MFR)

在Chromium上测试,但在我看来只是一个输入错误,在路径上没有起始点find_element_by_xpath

MFR= item.find_element_by_xpath('//span[@class = "darkTxt"]')
print (i, item.text, MFR)

相关问题 更多 >

    热门问题