我目前正在开发一个webscraper,它可以从几个不同的站点和所有这些站点中抓取数据,必须通过查找每个站点用来加载其数据的JSON文件来访问一个元素异步(具体来说,票价和事件的其他数据)。到目前为止,我已成功地在shell中进行测试并在爬行蜘蛛中运行从these {J}文件中抓取最低票价,但出于某种原因,我已经有了甚至从scrapy shell访问这些JSON文件的问题。
当我尝试为this website访问此file时,shell会停止并且永远不会启动命令行。 shell只在我按回车键时终止。在shell中为this site尝试此file后,整个终端窗口将自动关闭。这些文件有什么不同之处可以防止它们被刮掉,或者只是系统错误。
如果这里有阻止网页抓取工具的东西(我还是新手使用json btw),有没有办法以这种方式访问文件,例如可能先下载JSON然后解析它(我还是新手使用json btw)?我需要从更多的网站中获取JSON文件的价格,所以我只是想确保问题不会持续存在。任何帮助,将不胜感激。谢谢!我在Virtual Box中使用Ubuntu 14.04。
答案 0 :(得分:2)
你可以在这里做的是首先启动shell:
scrapy shell
然后拨打fetch(url)
:
$ scrapy shell
In [1]: import json
In [2]: fetch("https://seatgeek.com/listings?client_id=MTY2MnwxMzgzMzIwMTU4&id=2549305&_wt=1&&_=1436304908081/")
In [3]: data = json.loads(response.body)
除此之外,请确保您使用的是最新的Scrapy 1.0。