0

我正在获取带有一堆 javascript 的网页,并且我有兴趣通过页面的 javascript 部分解析某些相关信息。现在我在 Python/BeautifulSoup/regex 中有以下代码:

scriptResults = soup('script',{'type' : 'text/javascript'})

这会产生一个脚本数组,我可以使用 for 循环来搜索我想要的文本:

for script in scriptResults:
    for block in script:
        if *patterniwant* in block:
            **extract pattern from line using regex**

(当然,星号中的文本是伪代码。)

我想知道是否有更好的方法让我只使用正则表达式来查找汤本身的模式,只搜索脚本本身?我的实现工作,但它看起来真的很笨重,所以我想要更优雅和/或高效和/或 Pythonic 的东西。

提前致谢!

4

1 回答 1

1

我很多网站都有 JSON 格式的客户端数据。在这种情况下,我建议从 JavaScirpt 代码中提取 JSON 部分并使用 Python 的 json 模块(例如 json.json.loads )对其进行解析。结果,您将获得标准字典对象。

另一种选择是使用您的浏览器检查应用程序发出的 AJAX 请求类型。它通常还以 JSON 格式返回结构化数据。

我还会检查页面是否有任何可用的结构化数据(例如 OpenGraph、微格式、RDFa、RSS 提要)。许多网站都包含此功能以改善页面 SEO 并使其更好地与社交网络共享集成。

于 2013-05-28T05:30:50.580 回答