当数据没有选择器时,如何从网页中提取数据?

时间:2016-07-05 03:20:32

标签: javascript jquery dom xpath

我正在编写一些JavaScript来从第三方网站提取数据。我需要提取的数据格式如下:

<!-- a bunch of extra stuff before this -->
<tr>
    <td>Keyword: </td>
    <td>
        Value
        <a>...</a>
        Other stuff I don't care about
    </td>
</tr>
<!-- a bunch of extra stuff after this -->

我想要做的是搜索DOM以获取&#34;关键字:&#34;然后抓住&#34;价值&#34;从下一个TD。

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery来执行此操作。您必须使用siblings选择器和contains api来实现相同的目标。

您可以详细了解siblings here

您可以详细了解alert($("td:contains('Key')").siblings().html()); here

只有一个兄弟姐妹的例子:

$("td:contains('Key')").siblings().each(function(){ alert($(this).html()); });

有多个兄弟姐妹时的示例:

UIView *bottomView = [[UIView alloc] initWithFrame:CGRectZero]; [self.view addSubview:bottomView]; bottomConstraint = [NSLayoutConstraint constraintWithItem:bottomView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0]; bottomConstraint.active = YES;

答案 1 :(得分:0)

jQuery&#39; :contains()选择器可以做到这一点。

对于您的具体示例:

$( "td:contains('Keyword: ')" ).next().contents()[0].val();

首先它发现包含&#34;关键字:&#34;。然后它找到下一个元素,然后将其拆分为一个零件数组,然后选择该数组中的第一个元素,然后获取该元素的值。