【问题标题】:What is wrong with the function i have used [duplicate]我使用的功能有什么问题[重复]
【发布时间】:2020-07-29 12:15:35
【问题描述】:

我正在尝试使用 importxml 函数从以下网站获取数据

:https://fantasy.espn.com/basketball/league/standings?leagueId=1878319。我想使用 import xml 函数将标题为最终排名的表格放入谷歌表格中。我正在使用的功能如下:

=IMPORTXML("https://fantasy.espn.com/basketball/league/standings?leagueId=1878319","//*[@id="espn-analytics"]/div/div[5]/div[2]/div[1]/div/div/div[4]/section/div/div/div[2]/table/tbody")

该函数返回 #NA 错误并表示导入为空。如何修复它以获得我需要的数据集

【问题讨论】:

    标签: html xml google-sheets


    【解决方案1】:

    不幸的是,随着越来越多的网站转向动态加载的内容,IMPORTXML 函数失去了一些有用性,因为它无法读取这些内容。根据站点加载内容的方式,您可能能够分析脚本并找到源代码,但这样做可能会很痛苦,并且您可能必须解析格式才能使其正常工作。不好玩。

    由于您引用的页面是“最终排名” - 我假设您不需要自动更新它,因为它不会改变,在这种情况下,您可能想要而不是凌乱的复制粘贴尝试像“Instant Web Scraper”这样的 Chrome 扩展程序,它甚至可以分析动态内容中的表格,并让您将其导出为 CSV,然后您可以快速将其导入 Google 表格。

    很抱歉,在这种情况下没有解决 IMPORTXML 问题,但我希望它有所帮助。

    编辑:这是 CSV 格式的顶部表格(复制并保存到文本文件并将文本文件命名为 .csv,然后您可以将其上传到 Google 表格):

    jsx-2810852873,Image src,teamName,jsx-2302882246,Table__TD,jsx-2810852873 2,jsx-2810852873 3,jsx-2810852873 4,jsx-2810852873 5,jsx-2810852873 6,dn src
    1,https://g.espncdn.com/lm-static/logo-packs/core/CatsAndDogs/cats_dogs-3.svg,Kevin Manning Show,(Kevin Manning),16-3-1,20328.5,17509.5,1016.4,875.5,+140.9,
    2,,los angeles lebrons,(Zack Woodard),15-4-1,20909.5,17702.5,1045.5,885.1,+160.3,https://larrybrownsports.com/wp-content/uploads/2013/11/lebron-james-face.jpg
    3,,BasketBall Chimps,(Jacob Woodard),13-6-1,19189.0,17317.5,959.5,865.9,+93.6,https://www.kimballstock.com/pix/CHI/03/CHI_03_RK0299_01_P.JPG
    4,https://g.espncdn.com/lm-static/logo-packs/core/DIS_Avengers_EndGame/DIS_Avengers_EndGame_Capt_America.svg,Mr.Clean ICE,(Kenil Prajapati),12-7-1,21134.0,17640.5,1056.7,882.0,+174.7,
    5,https://g.espncdn.com/lm-static/logo-packs/core/OldTimeMickeyAndFriends/Hockey_Donald.svg,Yonkers Yoinkers,(Einar H),11-8-1,17317.5,16704.5,865.9,835.2,+30.6,
    6,,Yogurt  Slingers,(Allan Perez),8-11-1,15821.5,16717.5,791.1,835.9,-44.8,https://g.espncdn.com/lm-app/lm/img/shell/shield-FBA.svg
    7,https://g.espncdn.com/lm-static/logo-packs/core/TeamMascots-RobbHarskamp/Team_Mascots-04.svg,TAMU Shauced Shnacks,(Enrique Baqueiro),10-9-1,19733.5,17396.0,986.7,869.8,+116.9,
    8,https://g.espncdn.com/lm-static/fba/images/default_logos/1.svg,Htown ?? Dal,(sheshu chandrasekar),3-16-1,13393.5,18560.5,669.7,928.0,-258.4,
    9,https://g.espncdn.com/lm-static/logo-packs/fba/DreamTeam-ESPN/dreamTeam-4.svg,Original Gayngster,(Lee Nguyen),7-12-1,14462.0,17812.0,723.1,890.6,-167.5,
    10,https://g.espncdn.com/lm-static/logo-packs/fba/Jerseys-ESPN/fba-jerseys-10.svg,Musty Burger FC Juan Prado,(Juan Prado),0-19-1,13300.5,18229.0,665.0,911.5,-246.4,
    

    【讨论】:

    • 谢谢@campbellsea。有没有办法可以像现在一样使用 importxml 来获取表中的数据。我现在对自动更新方面不感兴趣
    • @dwebb 抱歉,没有。看起来 importxml 不能处理该页面上的动态内容。我已经在它上面戳了一下。数据位于 react/javascript 包装器中(特别是顶部表的 jsx-2810852873),我不知道有什么方法可以让 importxml 读取它。也许其他人会?希望谷歌会在某个时候彻底改革这个功能。现在最好的是使用“Instant Web Scraper”来获取 CSV。在我上面的答案中为顶部表格添加了 CSV。我更喜欢 Chrome 的“Web Scraper”扩展程序,因为它爬得更好,但有时动态内容也会出现问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2018-02-19
    • 2015-05-27
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多