麻烦网络从标记内联样式属性中抓取数据

时间:2012-12-26 10:04:07

标签: java regex web-scraping jsoup

所以我有几个内联样式的跨度:

<span style="...;width:8px;..."></span>
<span style="...;width:16px;..."></span>
<span style="...;width:13px;..."></span>
<span style="...;width:20px;..."></span>
<span style="...;width:0px;..."></span> //width=0px
<span style="...;width:5px;..."></span>
<span style="...;width:3px;..."></span>
<span style="...;width:90px;..."></span>
<span style="...;width:200px;..."></span>

我想提取“px”值并将其存储到数组中。当我们使用width=0px命中一个范围时,表示该数组的结束。所以上面的内容将如下所示:

array1 = [8, 16, 13, 20]

array2 = [5, 3, 90, 200]

我们可以使用整数数组的arraylist来存储数据。

到目前为止我所掌握的是非常基本的:Elements spanWidths= doc.select("span");

到目前为止,这产生了: "border:...;width:8px;..."

我相信我们使用正则表达式来解决这个问题,但我并不习惯它。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

正则表达式为\bwidth\s*:\s*(\d+)px。然后从第一个捕获组中获取值。也就是说,在结果匹配上调用.group(1)