从JavaScript中提取数据(Python爬虫)

0 投票
2 回答
739 浏览
提问于 2025-04-16 10:46

我现在正在用 urllib2、pyquery 和 json 这几个工具来抓取一个网站的数据,但现在我发现我需要从 JavaScript 中提取一些数据。一个想法是使用一个 JavaScript 引擎(比如 V8),但这对我来说似乎有点太复杂了。我本来想用正则表达式来处理,但这个表达式看起来实在太复杂了。

JavaScript 代码:

(function(){DOM.appendContent(this, HTML("<html>"));;})

我需要提取 <html>,但我不太确定该怎么做。因为 <html> 本身可以包含几乎所有的字符,所以用 [^"] 这样的方式是行不通的。

有什么想法吗?

2 个回答

1

如果在HTML代码中,每次出现的"都用\"来转义(毕竟这是JavaScript字符串),你可以使用

HTML\("((?:\\"|.)*?)"\)

来把参数放到HTML的第一个捕获组里。

请注意,这个正则表达式还没有被转义成JavaScript字符串。

2

为什么要用正则表达式呢?难道你不能直接用两个子字符串来处理吗?你不是知道想要去掉开头和结尾多少个字符吗?

string[42:-7]

其实,用这种方法比用正则表达式要快,而且这样就不用担心在<html>里面的引号是否被转义了。

撰写回答