在提取数据之前,是否必须附加已刮取的数据?

时间:2018-09-28 08:00:18

标签: javascript jquery json web-scraping frontend

我正在从另一个网站抓取数据。到目前为止,我已经取得了成功,但是我正在努力解决一个问题。提取数据后,我必须将其附加到div中才能使用getElementByClassName提取正确的数据。我还有其他方法可以做到吗?我可以以某种方式将数据存储在局部变量中,然后以类似的方式提取数据吗?

$.getJSON('URL' + encodeURIComponent('websiteURL' + retrievedData.postnr) + '&callback=?', function(data) {
  $(".newHtml").append(data.contents);//Here is where I append the data so I can extract it.
  var elements = document.getElementsByClassName("The class name that I am looking for");
  for (var i = 1; i < elements.length; i++) {
    var header = elements[i].getElementsByTagName("h2")[0].textContent;
    $(".add").append(header);
    for (var x = 0; x < 3; x++) {
      var pris = elements[i].getElementsByClassName("Class name inside with certain content inside the other class")[x].textContent;
      var info = elements[i].getElementsByClassName("Class name inside with certain content inside the other class")[x].textContent;
      $(".add").append("<div class='priser'><h3 class='pris'>" + pris + "</h3>" + "<p class='info'>" + info + "</p></div>");
    }

  }
  $(".newHtml").remove();

1 个答案:

答案 0 :(得分:0)

无需将其附加到文档中。您可以create jQuery object on the fly,然后可以使用它通过各种DOM遍历方法提取数据。

var myObj = $('<div />').html(data.contents);
var tragetElement = myObj.find('.someClass') 

var myObj = $('<div />').html('<span class="someClass">text</span>');
var tragetElement = myObj.find('.someClass');

console.log(tragetElement.text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>