首页 > 解决方案 > 亚马逊页面上产品详细信息的 xpath

问题描述

我正在尝试在此页面的第二列中获取产品详细信息:

https://www.amazon.co.uk/Philips-50PUS6753-12-Freeview-Ambilight/dp/B07C9GQSLV/ref=sr_1_1?ie=UTF8&qid=1552917671&sr=8-1&keywords=B07C9GQSLV

我正在使用以下 xpath

://*[@id="productDetailsTable"]/tbody/tr/td/div[2]/ul/li/text()

代码:

if self.hasXpath('//*[@id="productDetailsTable"]/tbody/tr/td/div/ul/li/b'):
    prod_info_dt = []
    prod_info_dd = []                      
    prod_info_dt_list = self.browser.find_elements_by_xpath('//*[@id="productDetailsTable"]/tbody/tr/td/div/ul/li/b')
    prod_info_list_count = len(prod_info_dt_list)
    for curr_prod_dt_info in prod_info_dt_list:
        prod_info_dt.append(curr_prod_dt_info.get_attribute('innerHTML').encode('ascii','ignore').strip().replace('.','_'))
        prod_info_dd_list = self.browser.find_elements_by_xpath('//*[@id="productDetailsTable"]/tbody/tr/td/div[2]/ul/li/text')
        for curr_prod_dd_info in prod_info_dd_list:
            if curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip()=='<i class="fi-x"></i>':
                prod_info_dd.append("No")
            elif curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip()=='<i class="fi-check"></i>':
                prod_info_dd.append("Yes")
            else:
                prod_info_dd.append(curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip())
    for x in range(prod_info_list_count):
        product_dict[prod_info_dt[x]] = prod_info_dd[x]   

标签: python-2.7seleniumxpath

解决方案


我不确定你在关注哪个价值。如果您正在关注产品的描述,您xpath应该这样做。

elements=driver.find_elements_by_xpath("//div[@id='feature-bullets']/ul/li/span")
proddesc=[]
for ele in elements:
    print(ele.text)
    proddesc.append(ele.text)

print(proddesc)

推荐阅读