2017-02-19 7 views
0

У меня есть строка со следующим содержанием:парсинг строки, чтобы получить HREF придала значение атрибута

var string = 
'<div class="product-info-inner-content clearfix ">\ 
    <a href="http://www.adidas.co.uk/ace-17_-purecontrol-firm-ground-boots/BB4314.html"\ 
     class="link-BB4314 product-link clearfix "\ 
     data-context="name:ACE 17+ Purecontrol Firm Ground Boots"\ 
     data-track="BB4314"\ 
     data-productname="ACE 17+ Purecontrol Firm Ground Boots" tabindex="-1">\ 
     <span class="title">ACE 17+ Purecontrol Firm Ground Boots</span>\ 
     <span class="subtitle">Men Football</span>\ 
    </a>\ 
</div>'; 

Я пытаюсь выполнить эквивалент JavaScript следующего кода Python, в котором используется красивый суп, чтобы захватить URL элемента элемента div, заданного кодом продукта (т. е. в данном случае BB4314).

is_listing = len(soup.findAll(name="div", attrs={"class": "product-tile"})) > 1 
     if is_listing: 
     # stuck from this part 
     attrs = {"class": re.compile(r".*\bproduct-link\b.*"), "data-track": code} 
     url = soup.find(name="a", attrs=attrs) 
     url = url["href"] 

Как это сделать?

ответ

2

Просто используйте DOM

var string = '<div class="product-info-inner-content clearfix "><a href="http://www.adidas.co.uk/ace-17_-purecontrol-firm-ground-boots/BB4314.html" class="link-BB4314 product-link clearfix " data-context="name:ACE 17+ Purecontrol Firm Ground Boots" data-track="BB4314" data-productname="ACE 17+ Purecontrol Firm Ground Boots" tabindex="-1"><span class="title">ACE 17+ Purecontrol Firm Ground Boots</span> <span class="subtitle">Men Football</span></a></div>', 
 
    div = document.createElement("div"); 
 
div.innerHTML = string; 
 
var href = div.querySelector("a.product-link").href, 
 
    parts = href.split("/"), 
 
    code = parts.pop().split(".")[0]; 
 
console.log(code) 
 

 
console.log(div.querySelector("a.product-link").getAttribute("data-track"))

+0

Спасибо. Будет ли это работать в случае, когда строка выглядит так: http://pastebin.com/ttpn6wth (т. Е. Разбор всей веб-страницы). – methuselah

+0

Да, но вы также можете получить и проанализировать метатег: '' – mplungjan

+0

Спасибо , но метатег выводит меня на страницу с листингом, когда на самом деле я хочу страницу продукта. – methuselah

 Смежные вопросы

  • Нет связанных вопросов^_^