我目前正在使用urllib2,pyquery和json的融合来抓取网站,现在我发现我需要从JavaScript中提取一些数据。一种想法是使用JavaScript引擎(如V8),但这对于我需要的东西来说似乎有些过分。我会使用正则表达式,但这个表达似乎很复杂。
JavaScript的:
(function(){DOM.appendContent(this, HTML("<html>"));;})
我需要提取<html>
,但我不完全确定如何这样做。 <html>
本身基本上可以包含太阳下的每个角色,因此[^"]
将不起作用。
有什么想法吗?
答案 0 :(得分:2)
为何选择正则表达式?难道你不能只使用两个子串,因为你知道要在开始和结束时修剪多少个字符?
string[42:-7]
除了比正则表达式更快之外,<html>
内的引号是否被转义并不重要。
答案 1 :(得分:1)
如果使用"
(毕竟它是一个JavaScript字符串)来转义html代码中的每个\"
,都可以使用
HTML\("((?:\\"|.)*?)"\)
将HTML参数转换为第一个捕获组。
请注意,此正则表达式尚未转义为Javascript字符串本身。