如何在Google Spreadsheets中用ImportXML提取网站数据并分列展示(仅留数值)
解决方案
要在Google Sheets中提取目标纯数值并分列展示,同时支持下拉复用,可使用以下两种高效公式:
方法1:单次请求提取多列(推荐)
该方法仅调用一次IMPORTXML,减少网络请求次数,更高效:
=ARRAYFORMULA(IF(A1="",,LET( raw_data, IMPORTXML("https://www.socialexplorer.com/profiles/essential-report/zcta5-"&A1&".html", "//div[contains(@class,'c-num')]"), 人口, REGEXEXTRACT(INDEX(raw_data, 1), "\d+,\d+|\d+"), 平方英里面积, REGEXEXTRACT(INDEX(raw_data, 3), "\d+\.\d+|\d+"), 每平方英里人口数, REGEXEXTRACT(INDEX(raw_data, 4), "\d+\.\d+|\d+"), {人口, 平方英里面积, 每平方英里人口数} )))
方法2:独立定位提取
若需要更直观的XPath定位,可分别提取每个数值:
=ARRAYFORMULA(IF(A1="",,{ REGEXEXTRACT(IMPORTXML("https://www.socialexplorer.com/profiles/essential-report/zcta5-"&A1&".html", "//div[contains(@class,'c-num')][1]"), "\d+,\d+|\d+"), REGEXEXTRACT(IMPORTXML("https://www.socialexplorer.com/profiles/essential-report/zcta5-"&A1&".html", "//div[contains(@class,'c-num')][3]"), "\d+\.\d+|\d+"), REGEXEXTRACT(IMPORTXML("https://www.socialexplorer.com/profiles/essential-report/zcta5-"&A1&".html", "//div[contains(@class,'c-num')][4]"), "\d+\.\d+|\d+") }))
使用说明
- 在A列输入目标ZIP码(如A1填
48105) - 在B1单元格输入上述任一公式,回车后B、C、D列将自动填充对应纯数值
- 下拉B1单元格的公式,即可自动提取A列其他ZIP码的对应数据
内容的提问来源于stack exchange,提问作者anna
相关产品推荐
相关产品推荐

