获取大量html文本

时间:2018-03-14 13:24:34

标签: javascript regex fetch

我正在使用 fetch 来获取HTML文件。到目前为止,我只是想出了如何使用text()方法将响应作为文本数组返回:

fetch(url, {
    credentials: 'same-origin'})
    .then(function(response) {
    return response.text();
}).then(function(text) {
    longAssText = text;
    textExtract = longAssText.match(/<table class='listing' id='customer-tickets'>[\s\S]*<script type='text\/javascript'>/gi);
});

我回来的字符串看起来像这样(textExtract):

<span class="status status_active">active</span></td>
<td><a href="/tickets/365347-SOME-TITLE">#365347 SOME-TITLE</a></td>
<td>2018-03-12 09:14:34</td>
<td>2018-03-12 10:12:46</td>
<td>some category</td>
</tr>
<tr class='even'>
<td>
<img align="absmiddle" alt="Service_request_ticket" src="/images/service_request_ticket.gif?1520519528" title="some attribute" />
<img align="absmiddle" alt="Number_1" src="/images/number_1.gif?1520519528" title="Saken ligger hos 1. linje" />
<img align="absmiddle" alt="Flag_disabled" src="/images/flag_disabled.png?1520519528" title="Priority: Normal" />
</td>
<td class='ttstatus'><span class="status status_closed">closed</span></td>
<td><a href="/tickets/150640-vs-sender-e-post-brn001ba9bd7a93_000186">#150640 VS: SOME TITLE</a></td>
<td>2013-11-06 08:12:35</td>
<td>2013-11-20 21:00:11</td>
<td>Some category</td>
</tr>
<tr class='odd'>
<td>

我想在 status_active 类前面的每个a-tag中提取文本:“#365347 SOME-TITLE”。

所以:

<a href="/tickets/365347-SOME-TITLE">#365347 SOME-TITLE</a>

我想提取#365347 SOME-TITLE

.. span.status_active之后的每个a-tag。

我正在使用正则表达式。我想用regex获取所有实例,但我甚至无法获得第一场比赛。

我尝试过这样的模式 from([\s\S]*?)to 但是我真的很难绕过这个。

我最接近的是:

(status_active)[^._]*(?=\.)

但不是每个文字都有。最后..

正则表达式是否可行?如果是这样,有人会指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

正则表达方式

请使用html解析器(例如DomParser):

parser = new DOMParser();
htmlDoc = parser.parseFromString(text, "text/html");
...

另见着名的 SO answer ......: - )

答案 1 :(得分:0)

试试这个:

var regex = /status_active.*?\n*.*<a.*?>(.*?)<\/a>/gm
var matches = text.match(regex);
console.log(matches);

另一种方法可能是使用jQuery来解析文本并使用选择器来查找相应的节点。就像MarcoS已经说过的那样:这将是一个更清晰的解决方案,因为正则表达式不是解析xml结构的最佳工具。