使用jQuery在sub-div中选择信息

时间:2017-03-12 19:44:21

标签: jquery screen-scraping

我是Safaribooksonline.com的成员,我喜欢它。

现在我想保存一下我库中的书籍清单。

如果我查看书籍列表的html源代码,我在“main”类中有下面的[1] div。

我将jQuery加载到浏览器控制台中,然后使用books_list = jQuery(".main")选择所有“main”div。这给了我一个像Object { 0: <div.main>, 1: <div.main> ...这样的条目的对象。

我可以迭代这些条目并提取子信息(书名等)。

从这些主要div中获取子div和子信息的最惯用方法是什么?理想情况下采用JSON格式。所以我有{title: "book title", author: "book author", etc}

[1]包含图书信息的Divs

<div class="main">
  <span class="cover">
    <a href="/library/view/learning-javascript-design/9781449334840/">
      <span><img src="/library/cover/9781449334840/"></span>
    </a>
  </span>

  <a href="/library/view/learning-javascript-design/9781449334840/" class="next title-block js-bit-title t-bit-link">
    <span class="chapter-title t-bit-title">Learning JavaScript Design Patterns</span>
  </a>
  <span class="book-title">
    <span class="author">by Addy Osmani</span>
    <span class="issued">Released: August 2012</span>
  </span>

  <div class="t-read-link prog-text">
    <a href="/library/view/learning-javascript-design/9781449334840/index.html" class="button position-link t-position-link js-position-book">Start reading now</a>
  </div>

  <div class="book-topics">
    <ul class="topic-display">
  <li><a href="/topics/design-patterns" class="topic t-t-link" data-topic-slug="design-patterns">Design Patterns</a></li>
    </ul>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

尝试$().each

  

迭代jQuery对象,为每个匹配的元素执行一个函数。

E.g:

jQuery(".main").each(function() {
    // do something with each div, access them using $(this)
});