2016-11-22 35 views
0

我们可以使用Scrapy从java脚本加载的网页获取内容吗?Scrapy for dynamic contect

我想要废除this页面 中的使用示例,但由于它们是使用java脚本作为Jason对象加载的,所以我无法让它们使用Scrapy。

你能建议什么是处理这些问题的最佳方法吗?

回答

3

打开浏览器的开发人员工具,然后查看网络选项卡。如果你打的页面有足够的“下一步”按钮,它会发出一个新的请求:

examples.json

取出JSONP放慢参数之后,URL非常简单:

https://corpus.vocabulary.com/api/1.0/examples.json?query=unalienable&maxResults=24&startOffset=24&filter=0 

通过提出最少数量的请求,你的蜘蛛将会很快。

如果你只想模拟一个完整的浏览器并执行JavaScript,你可以使用像Selenium或Scrapinghub's Splash(及其相应的Scrapy plugin)。

+0

我得到了该网址,但它返回了一个文本文件,我再次可以使用scrappy取消。我想从文件中提取句子。我怎样才能做到这一点? PS-感谢您的回答:) –

+1

这是JSON。解析它与'json.loads':http://stackoverflow.com/questions/18171835/scraping-a-json-response-with-scrapy – Blender

+0

我已经尝试过,它返回错误ValueError:没有JSON对象可以解码 json.loads(response.body_as_unicode()) –