试图在网站上抓取谷歌地图api生成的动态数据,但正常抓取返回空白
Trying to scrape dynamic data generated by google maps api on a website, but normal scraping returns blank
我正在使用scrapy从这个网站上抓取工作数据。一个作业页面是这样的。静态数据可以很容易地被抓取,但谷歌地图api(如"距离"answers"时间")生成的动态数据给我带来了问题。我得到距离字段的"未知距离"值和时间字段的空白值。
当我在chrome中打开控制台,然后在脚本部分的网络选项卡中,我可以看到一个向谷歌地图api发出的java请求("DirectionsService.Route"),我需要的所有值都以JSON格式存在。
有没有一种方法可以让我使用scray来获得谷歌地图api生成的json输出?
如果没有,那么有没有一种方法可以对scratch脚本进行编程,等待完整的页面加载(以便加载距离和时间值),然后刮取这些值?
问题是scrapy不呈现javascript,"距离"answers"时间"字段都由javascript填充。
你有几个选择。您可以使用Splash(http://splash.readthedocs.org/en/latest/index.html)由与Scrapy或selenium/phantomjs相同的人制作。
selenium和scrapy的动态页面有很多链接/信息。
至于JSON/ratchy,您可以使用python中的JSON库(导入JSON)将JSON加载到python字典中,如:
json_url = 'http://www.whatever.com/whatever.json'
yield Request(json_url, callback=self.parse_json)
def parse_json(self, response):
json_dict = json.loads(response.body_as_unicode())
如果您生成的URL返回JSON,那么数据现在将位于名为JSON_dict的python字典中。
相关文章:
- 同源策略目的|用户数据与基本页面数据|客户端页面抓取
- VBA正在抓取不在HTML源文件中的生成内容
- 尝试使用Node.js动态路由从IMDB中抓取电影内容.但是在我的output.json文件中没有定义
- 如何从网站上抓取链接和图片
- 用jquery抓取图像SRC-attr
- Javascript Regex-从价格中抓取分隔符
- 使用网络服务器的IP地址而不是域名对其进行屏幕抓取
- Javascript:如何从URL中抓取片段并将其写入一些PHP
- 使用htmlunit抓取动态网页
- 如何抓取URL的一部分并将其粘贴到页面上的某个位置
- Html抓取网站加载错误的J汤Java
- 如何获取网站所有页面的链接以进行数据抓取
- 如何使用AJAX和JSON从一个页面抓取PHP变量到另一个页面
- 我可以使用RubyonRails抓取URL的源代码吗?还是应该使用PHP
- 我如何从一个无限滚动的网站抓取图像,其中api是隐藏的,我无法通过使用Inspect Element获得它->网络
- 淘汰从选项中抓取类
- 原生脚本中的动态抓取?需要抓取页面,能够单击HTML按钮
- Highcharts向下钻取调整向下钻取/向上钻取时Y轴的大小
- 触控板夹取/取消夹取w/javascript(MacBook)
- HighCharts:树映射数据标签在向下钻取/向上钻取时不一致