使用scrapy从网页中提取js数据

时间:2013-09-19 05:50:10

标签: javascript python scrapy

我正在使用scrapy抓取网页。

现在脚本标签中有一些数据。我使用xpath获取脚本标记中的所有数据,看起来像这样。

 <script>
 some data

 abc.xyz=[["mohit","gupta","456123"]];

 some data
 </script>

我想要abc.xyz中的数据,但我无法这样做。

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式abc.xyz=(.*?);来提取变量值。另外,如果你想从中创建一个python列表,你可以使用literal_eval()

from ast import literal_eval
import re

text = """<script>
 some data

 abc.xyz=[["mohit","gupta","456123"]];

 some data
 </script>"""

value = re.search('abc.xyz=(.*?);', text).group(1)
print value, type(value)

value = literal_eval(value)
print value, type(value)

打印:

[["mohit","gupta","456123"]] <type 'str'>
[['mohit', 'gupta', '456123']] <type 'list'>