2017-02-19 2 views
0

Ich habe eine Zeichenfolge mit folgendem Inhalt:Parse String href erhalten Attributwert gegeben

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>'; 

Ich versuche, die JavaScript-Äquivalent des folgenden Python-Code auszuführen, in denen schöne Suppe verwendet die URL greifen des div-Klassenelements mit einem Produktcode (dh in diesem Fall 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"] 

Wie kann ich das tun?

Antwort

2

Verwenden Sie einfach 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

Dank. Funktioniert das für den Fall, dass die Zeichenfolge wie folgt aussieht: http://pastebin.com/ttpn6wth (d. H. Das Analysieren einer gesamten Webseite). – methuselah

+0

Ja, aber Sie könnten auch das Meta-Tag erhalten und parsen: '' – mplungjan

+0

Danke , aber das Meta-Tag bringt mich zur Listing-Seite, wenn ich tatsächlich die Produktseite möchte. – methuselah