是否可以像这样刮擦JavaScript图形?

时间:2019-06-29 02:20:04

标签: python selenium web-scraping beautifulsoup scrapy

我需要从不同的始发地和目的地刮取历史市场运费率。目前,我只有这样的交互式图表可供我使用:

样本图

Sample Graph

您必须单击图形才能显示数字(所有数字都立即显示)。

我有一些通过Scrapy库进行HTML Web抓取的经验,但是我想知道,像BeautifulSoup这样的东西是否能够处理这种类型的问题。

1 个答案:

答案 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请求图形数据:

enter image description here

相关问题