【问题标题】:Extracting Javascript Arrays提取 Javascript 数组
【发布时间】:2015-10-19 11:20:13
【问题描述】:

我正在使用抓取在谷歌地图上呈现标记的网页。我使用 NReco.PhantomJS 来获取网页的源代码,包括通过 Ajax 加载的数据。我现在将所有网页源存储在一个字符串对象中。现在我想从整个源代码中提取的部分是 javascript 数组声明和初始化。是这样的,

var customM = [41400, 610420, 313270, 312216, 51516];

现在我知道我可以使用 StartIndex 和 EndIndex 并获得我想要的部分作为子字符串,但是页面上已经有另一个类似的行被注释掉但提取而不是我实际想要的行,

// var customM = [43100, 310220, 311240];

还有其他方法可以提取我想要的吗?一些图书馆或正则表达式?

【问题讨论】:

  • 是的,您可以使用正则表达式检查以确保 var 位于没有 cmets 的行首,例如 ^var customM...
  • @JamesThorpe:当然,这会被前导空格或阻止 cmets 或...
  • @T.J.Crowder 确实 - 但它仍然会匹配 OP 现在所拥有的并且比 substring 方法更好(它可能匹配它找到的第一个实例)。

标签: javascript c# regex web-scraping


【解决方案1】:

使用这样的正则表达式:

(?:^|\n)\s*var customM = \[.*

Regex live here.

【讨论】:

  • 非常感谢。它完全符合我的要求。如果没有这些帮助,我可能会花费数小时来解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-25
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多