【发布时间】:2013-08-24 10:51:44
【问题描述】:
问题:我试图从中收集数据的网站使用 Javascript 来生成图表。我希望能够提取图表中正在使用的数据,但我不确定从哪里开始。例如,数据可能如下:
var line1=
[["Wed, 12 Jun 2013 01:00:00 +0000",22.4916114807,"2 sold"],
["Fri, 14 Jun 2013 01:00:00 +0000",27.4950008392,"2 sold"],
["Sun, 16 Jun 2013 01:00:00 +0000",19.5499992371,"1 sold"],
["Tue, 18 Jun 2013 01:00:00 +0000",17.25,"1 sold"],
["Sun, 23 Jun 2013 01:00:00 +0000",15.5420341492,"2 sold"],
["Thu, 27 Jun 2013 01:00:00 +0000",8.79045295715,"3 sold"],
["Fri, 28 Jun 2013 01:00:00 +0000",10,"1 sold"]];
这是定价数据(日期、价格、数量)。我在这里发现了另一个问题 - Parsing variable data out of a js tag using python - 这表明我使用 JSON 和 BeautifulSoup,但我不确定如何将其应用于这个特定问题,因为格式略有不同。事实上,在这个问题中,代码看起来更像是 python,而不是任何类型的 JSON 字典格式。
我想我可以将它作为字符串读入,然后使用 XPATH 和一些时髦的字符串编辑来转换它,但这对于已经格式化为 Javascript 变量的东西来说似乎工作量太大。
那么,在使用 python 时,我可以在这里做些什么来从这个变量中提取这种类型的有组织的数据? (我最熟悉python和BS4)
【问题讨论】:
-
除了
=后面的换行符和var关键字,其余在python中都有效 -
那是实际的代码吗?或者它是一个名为
line1的变量,它是一个列表列表?如果是后者,你可以for list in line1: do_something_with(list[0], list[1], list2]) -
是一个叫line1的变量,它是加载时页面内容的一部分,是一个列表的列表。
-
所以基本上它是一个javascript变量的字符串?不是实际的 python 变量。恐怕您将不得不使用某种解析模块或删除所有不必要文本的字符串和
exec()。使用exec()之后,你可以用它做各种事情。 -
我无法告诉解析器获取 line1 的内容吗?这似乎应该如此简单......
标签: javascript python web-scraping beautifulsoup