Scrapy 和 Xpath 从 javascript 代码中提取数据

Scrapy and Xpath to extract data from javascript code

我正在学习并同时使用 scrapy 构建网络蜘蛛。我需要帮助从以下 javascript 代码中提取一些信息:

<script language="JavaScript" type="text/javascript+gk-onload">

    SKART = (SKART) ? SKART : {};
    SKART.analytics = SKART.analytics || {};
    SKART.analytics["category"] = "television";
    SKART.analytics["vertical"] = "television";
    SKART.analytics["supercategory"] = "homeentertainmentlarge";
    SKART.analytics["subcategory"] = "television";

</script>

我想使用 Xpath 将类别信息提取为电视。请帮助我选择我应该使用的选择器。

您可以通过 re():

使用 Selector 正则表达式 的内置支持
pattern = r'SKART\.analytics\["category"\] = "(\w+)";'
response.xpath('//script[@type="text/javascript+gk-onload"]').re(pattern)

演示(使用 scrapy shell):

$ scrapy shell index.html
In [1]: pattern = r'SKART\.analytics\["category"\] = "(\w+)";'

In [2]: response.xpath('//script[@type="text/javascript+gk-onload"]').re(pattern)
Out[2]: [u'television']