我需要从不同的始发地和目的地刮取历史市场运费率。目前,我只有这样的交互式图表可供我使用:
样本图
您必须单击图形才能显示数字(所有数字都立即显示)。
我有一些通过Scrapy库进行HTML Web抓取的经验,但是我想知道,像BeautifulSoup这样的东西是否能够处理这种类型的问题。
答案 0 :(得分:4)
简而言之-是的,但要视情况而定。
大多数javascript图形通过将json数据嵌入<script>
标记中或对其发出Ajax请求来工作。因此,某处有json格式的图形数据-您只需要找到它即可。
要找到它,您首先应该打开页面源代码,并为在图中看到的一些关键点打开ctrl + f。在您的情况下,以£407
开头-很可能是在嵌入的json中:
<script type="application/ld+json">
{'prices': ['£407',...]}
</script>
或者,它也可以作为AJAX请求检索。例如,以这种craft.co
情况为例。加载https://craft.co/netflix页面时,它会向AJAX请求图形数据: