Scrapy - 为什么我无法提取这些数据?

时间:2014-08-28 00:49:05

标签: javascript scrapy

我正在尝试删除这段代码,但我意识到我想要提取的区域只出现在带有“Inspect element”的Chrome上。查看源代码,这件作品就会消失。

我如何获得这些数据?我用scrapy shell测试了没什么......

此处(检查元素)标签出现:

<div id="Brinde"></div>
<script>MostraParcelaPagSeguro(158.0,0, 1886481);</script>
<span class="ParcelaPagSeg">em&nbsp;<b>12x</b> de <b>R$&nbsp;14,93</b></span>
</div>

此处(源代码)标签消失:

<div id="Brinde"></div>
<script>MostraPreco(158.0,158.0,'PM3602001_30',0);</script><br>
<script>MostraParcelaPagSeguro(158.0,0, 1886481);</script>
</div>

我知道这可能是因为脚本MostraParcelaPagSeguro()。但是我怎么能提取这个呢?

1 个答案:

答案 0 :(得分:0)

Scrapy本身并不解析javascript或AJAX请求。您将不得不对该脚本获得的数据执行另一个Web请求。基本上你也必须模拟javascript。见Can scrapy be used to scrape dynamic content from websites that are using AJAX?

更简单的选择是使用基于浏览器引擎(即Webkit)的机器人,例如Ghost,它将像您的Web浏览器一样加载页面。因此,所有来自Javascript的DOM更改都会发生,然后您可以提取所需内容。