2011-01-28 47 views
0

我目前正在使用urllib2,pyquery和json的混合来刮取网站,现在我发现我需要从JavaScript中提取一些数据。一个想法是使用JavaScript引擎(如V8),但这似乎是我需要的矫枉过正。我会使用正则表达式,但表达式似乎很复杂。从JavaScript中提取数据(Python Scraper)

的JavaScript:

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

我需要提取<html>,但我不完全知道如何做到这一点。 <html>本身可以包含太阳下的每个角色,因此[^"]将不起作用。

有什么想法?

+0

如果它包含一个```,是否需要转义? – Jens 2011-01-28 07:32:18

+0

是的,这会增加复杂性。 – skeggse 2011-03-09 18:42:46

回答

2

为什么是正则表达式?难道你不能只使用两个子字符串,因为你知道你想修剪开始和结束多少个字符?

string[42:-7] 

除了比一个正则表达式更快,它则不会,如果里面<html>引号转义或没有关系。

1

如果HTML代码中的"每一次出现将使用\"(它是一个JavaScript字符串毕竟)进行转义,你可以使用

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

以获取参数为HTML到第一个捕获组。

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