如何在Nokogiri中使用条件

时间:2019-03-09 11:17:18

标签: ruby web-scraping nokogiri

有没有一种方法可以将No Url Foud放在空白或丢失的定位标记中。 提出此问题的原因是textnode输出50个textnode,而url仅输出47个,因为某些锚点未命中或不可用,从而导致下一个列表崩溃并完全破坏了列表

查看屏幕截图td tag | Td list

我可以得到textNodeattributes,这里唯一的问题是某些td列表缺少锚,从而导致其他列表崩溃

<table>
    <tr>
        <td><a href="url">TextNode</a></td>
    </tr>
    <tr>
        <td><a href="url">TextNode</a></td>
    </tr>
    <tr>
        <td><a href="url">TextNode</a></td>
    </tr>
    <tr>
        <td>TextNode With No Anchor</td>
    </tr>    <tr>
        <td><a href="url">TextNode</a></td>
    </tr>
    <tr>
        <td>TextNode With No Anchor</td>
    </tr>
</table>
company_name = page.css("td:nth-child(2)")
company_name.each do |line|
    c_name = line.text.strip
    # this will output 50 titles
    puts c_name
end

directory_url = page.css("td:nth-child(1) a")
directory_url.each do |line|
    dir_url = line["href"]
    # this will output 47 Urls since some list has no anchor tag.
    puts dir_url
end

1 个答案:

答案 0 :(得分:1)

您找不到不存在的东西。您必须找到那里的东西,然后在其中搜索可能存在或可能不存在的元素。

赞:

PROGRAM archivosejercic1o;
TYPE
    num = text;
VAR
    arch_num: num;
    name: string[20];
    x: integer;
BEGIN
  ...
    writeln(arch_num, x);
  ...
END.