从JavaScript中提取数据(Python爬虫)
我现在正在用 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>
里面的引号是否被转义了。