2011-01-28 130 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字符串本身。