xpath для получения сведений о продукте на странице Amazon

#python-2.7 #selenium #xpath

#python-2.7 #селен #xpath

Вопрос:

Я пытаюсь получить сведения о продукте во втором столбце этой страницы:

https://www.amazon.co.uk/Philips-50PUS6753-12-Freeview-Ambilight/dp/B07C9GQSLV/ref=sr_1_1?ie=UTF8amp;qid=1552917671amp;sr=8-1amp;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]   
  

Комментарии:

1. Какую проблему вы видите?

2. можете ли вы добавить скриншот, какую часть страницы вы пытаетесь извлечь.

3. я ищу xpath значений сведений о продукте: это xpath для него, но он не работает: prod_info_dd_list = self.browser.find_elements_by_xpath(‘//*[@id=»productDetailsTable»]/tbody/tr / td /div [2]/ul / li /text’)

Ответ №1:

Я не уверен, какое значение вы ищете. Если вы просматриваете описания продукта, ваш 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)