使用 web-harvest 抓取 HTML 文件中的 javascript 变量

Crawling a javascript variable inside HTML file with web-harvest

本文关键字:javascript 变量 文件 web-harvest 抓取 HTML 使用      更新时间:2023-09-26

我有一个问题(也许是假的(。假设我在 html 页面中有以下代码片段,其中包含一堆其他内容(其他脚本标签和 html 标签(:

<script type="text/javascript">
    var count = 0;
    var active = false;
    var mapData = **{"points":   [{"type":"origin","name":"6003","lnglat":"174.77851504231018,-41.278763329010459,0'n"}]}**;
</script>

我只想抓取 mapData 变量的内容(在上面的例子中以粗体显示(。

我正在努力解决需要在 xml 配置文件中使用的 xpath 表达式,以便仅获取 mapData 变量内容。由于我是XPath/Web-harvest的新手,我不确定解决方案是使用xpath表达式还是其他方法。

所有其他时候,我的抓取都是基于 HTML 标签和其中的 id 属性的名称,但现在我在文件中只有很多脚本标签,我需要获取 mapData 变量。

有什么想法吗?

请尝试使用 ${SiteURL} 是您的网站网址:

<xpath expression="for $m in $x//script[contains(text(),'var mapData')] return normalize-space(substring-after($m,'var mapData ='))">
        <html-to-xml>
          <http url="${SiteURL}"/>
        </html-to-xml>
      </xpath>