xpath для деталей продукта на странице амазонки - PullRequest
0 голосов
/ 18 марта 2019

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

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]   

1 Ответ

0 голосов
/ 18 марта 2019

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