Parsing 如何将动态图形中的数据点提取到文本文件中?(Datawrapper/html/json)
我想提取链接图(datawrapper)文本文件中的点,当您将光标移动到不同的绘制线(不同的日期、不同的比例)上时,会显示这些点 (查看带有“查看源代码:”的代码) 到目前为止,我只提取了单个表,例如,在简单HTML页面上使用BeautifulSoup或in R。在这种情况下,我不知道最优雅的方法是什么 我可以深入探讨解决这个问题的常见方法或解决方案是什么?因为我想提取一些类似于表的图,所以需要一个自动化的解决方案Parsing 如何将动态图形中的数据点提取到文本文件中?(Datawrapper/html/json),parsing,text,graph,extract,Parsing,Text,Graph,Extract,我想提取链接图(datawrapper)文本文件中的点,当您将光标移动到不同的绘制线(不同的日期、不同的比例)上时,会显示这些点 (查看带有“查看源代码:”的代码) 到目前为止,我只提取了单个表,例如,在简单HTML页面上使用BeautifulSoup或in R。在这种情况下,我不知道最优雅的方法是什么 我可以深入探讨解决这个问题的常见方法或解决方案是什么?因为我想提取一些类似于表的图,所以需要一个自动化的解决方案 谢谢你的建议我有点晚了,但我希望这可能会有所帮助。图形是由javascript生
谢谢你的建议我有点晚了,但我希望这可能会有所帮助。图形是由javascript生成的——我们可以深入研究脚本,找到它们使用的JSON格式的数据 我是如何解决这个问题的,使用python:
beautifulsou
解析网页:json
库解析它:pandas.dataframe.from_records()
非常有用)
完整代码:
import requests
import re
import json
from bs4 import BeautifulSoup as bs
url = "https://datawrapper.dwcdn.net/RE9Rq/1/"
raw = requests.get(url)
soup = bs(raw.text, "lxml")
raw_data = soup.find_all("script")[1]
string_data = str(string_data).replace("\\", "")
raw_json = (
"{" + re.findall(r"\"data\":\{.*?\]", raw_data, flags=re.MULTILINE)[1] + "}}"
)
data = json.loads(raw_json)["data"]
raw_data = soup.find_all("script")[1]
string_data = str(raw_data).replace("\\", "")
raw_json = (
"{" + re.findall(r"\"data\":\{.*?\]", string_data, flags=re.MULTILINE)[1] + "}}"
)
data = json.loads(raw_json)["data"]
import requests
import re
import json
from bs4 import BeautifulSoup as bs
url = "https://datawrapper.dwcdn.net/RE9Rq/1/"
raw = requests.get(url)
soup = bs(raw.text, "lxml")
raw_data = soup.find_all("script")[1]
string_data = str(string_data).replace("\\", "")
raw_json = (
"{" + re.findall(r"\"data\":\{.*?\]", raw_data, flags=re.MULTILINE)[1] + "}}"
)
data = json.loads(raw_json)["data"]