标签: google-sheets-importxml

使用 Google 电子表格导入 XML 并随时间保存结果

我在 Google 电子表格上使用 ImportXML 来抓取 YouTube 搜索结果并捕获我正在跟踪的视频的排名。

=IMPORTXML("https://www.youtube.com/results?search_query=control+theory&page=1"),"//div[@class='yt-lockup-byline']//a")
Run Code Online (Sandbox Code Playgroud)

抓取效果很好(我得到了第一页的所有结果)。然后我查找 YouTube 结果的位置并将其保存在一个单元格中。

但是,我遇到的问题是当我尝试跟踪该排名的时间。不确定如何执行此操作,但我正在寻找一种=ImportXML每天运行该函数的方法(是否有刷新命令?),并在每次运行该函数时将该单元格的结果保存在新行中。

有任何想法吗?

google-sheets google-sheets-importxml

4
推荐指数
1
解决办法
2088
查看次数

如何使用 GOOGLEFINANCE 在 Google Sheets 中获取中国股票市场指数 (SSE)?

我到处搜索,但没有找到方法。是为了=Googlefinance("ticker"),中国的上证指数是否可以作为谷歌金融的股票代码,用于谷歌表格?

google-finance google-sheets web-scraping google-sheets-formula google-sheets-importxml

4
推荐指数
1
解决办法
4090
查看次数

Google Spreadsheets(ImportXML)中的Xpath出现问题

这是一个很棒的网站,通过滚动和搜索其他帖子,我已经回答了很多问题。不幸的是,我似乎无法找到专门解决该问题的答案,并认为我会尝试发布并寻求帮助-

我正在使用ImportXML和Google电子表格来“抓取”零售网站上的一些产品描述。在大多数情况下,它一直运行良好,并且我通过两种方式做到了:

1)对帖子的描述部分的特定调用:

=ImportXML(A1,"//div[@class='desc']")
Run Code Online (Sandbox Code Playgroud)

2)调用整个“产品卡”,该产品卡还返回诸如产品标题,价格,发布时间等信息,并将这些项目放置在我的Google电子表格的相邻单元格中:

=ImportXML(A1,"//div[@class='productCard']")
Run Code Online (Sandbox Code Playgroud)

两者都运行良好,但是使用每种方法我都遇到了一个不同的问题。如果我什至可以解决其中一个问题,那么我会很乐意放弃另一种方法,我只需要其中一种即可工作。问题是:

方法1)网站禁止卖家在产品发布中添加联系信息-如果他们仍然包含电子邮件地址,则网站会自动将其阻止,以便在发布中将其显示为“ ...您可以通过[... ]“ 或类似的东西。[模糊]以不同的颜色显示,并且显然以不同的方式处理。当我使用方法1抓取这些描述时,ImportXML在碰到[obscured]一词时似乎变得“颠簸”,并将剩余的文本从该产品描述传递到电子表格中的下一个单元格。这破坏了工作表的整个组织,我想找到一种方法,使ImportXML可以忽略[已遮盖的],而仍将产品描述的整个文本放在一个单元格中。

方法2)我要求整个“产品卡”如下:

=ImportXML(A1,"//div[@class='productCard']")
Run Code Online (Sandbox Code Playgroud)

如前所述,这对大多数产品来说都可以正常工作,而且我不介意在相邻单元格中发布其他信息(价格,日期等)。但是,该网站还允许对某些产品进行“精选”,使其出现在网站上的其他颜色框中,因此更有可能引起买家的注意。使用这种方法,“精选”产品不会被抓取或导入到我的电子表格中,而只会被传递出去。

描述(方法1)和产品卡(方法2)的源代码(在Safari上为“检查元素”)在以下位置(对于普通产品(a)和特色产品(b)) ):

(一种)

<div id="productSearchResults">
<div class="productCard tracked">
<div>...</div>
<div class="stats">...</div>
<div class="desc collapsed descFull">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

(b)

<div id="productSearchResults">
<div class="productCard featured tracked">
<div>...</div>
<div class="stats">...</div>
<div class="desc collapsed descFull">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

您可以同时在(a)和(b)中看到我在方法1中调用的'desc'类,该类似乎工作正常。从我在该站点上的阅读中,我认为我已经了解到给定的类不能超过一个单词,因此,使用“ desc折叠的descFull”和“已跟踪的productCard”以及“已跟踪的productCard”不会代表标题中包含3、2和3个单词的类,但是却分配了多个类的情况呢?

无论如何,对“ desc”(方法1)的调用都可以正常工作,并且似乎可以得到所有描述。因此,在方法2中,我本以为对“ productCard”的调用将获得所有功能产品和常规产品的信息,因为“功能”是分配给某些“ productCard”的额外类。如果我将所有的“ productCard”都称为“ productCard”,那么是否不应该退回正常的具有特色的产品?目前情况并非如此。我尝试将“跟踪的”和“功能化的”称为类,并且都不返回任何内容,因此我认为它们是等同于“ productCard”的自己的类的逻辑可能存在缺陷。

总而言之,方法1中的“ desc”调用工作正常,甚至可以获取“精选”产品的描述。但是,当联系信息包含在描述中并显示为[模糊]时,它会将我的数据撞到电子表格中紧接单词之后的下一个单元格中。这引发并破坏了所有组织。

在方法2中,我根本没有获得特色产品,这大大削弱了我想要做的事情。这些问题中的一个(或两个都可以解决)吗?

非常感谢您能给我的任何帮助。

***更新:从下面的评论中可以看出,建议的“包含”的使用通过检索常规产品和特色产品改进了方法2。但是,特色产品卡具有额外的文本元素,并且由于用这种方法刮掉了整个卡片,因此特色产品与常规产品的单元格对齐方式不匹配。如果有一种方法1的解决方法,那就更好了。如以下注释中所述,[模糊]文本以“跨度”出现,该跨度位于

<div class="desc descFull collapsed"
Run Code Online (Sandbox Code Playgroud)

<span class="obscureText">[obscured]</span>
Run Code Online (Sandbox Code Playgroud)

有什么办法可以像往常一样导入“ desc”,但是可以告诉XPath本质上“忽略” [obscured]跨度,或者至少以一种不会在[模糊]出现一个单元格吗?

非常感谢大家!

html xml xpath google-sheets google-sheets-importxml

3
推荐指数
1
解决办法
2025
查看次数

使用 Google 表格导入 XML 并每分钟自动刷新

我有下面的脚本,它在名为价格的谷歌表中导入一些 XML 数据。一切正常,只是我设置了一个时间驱动的触发器每分钟运行一次,但数据不会更新。

  • 触发器似乎工作正常,因为我可以看到每分钟更新一次上次运行时间。
  • 调用 XML 数据的脚本工作正常,因为我可以看到电子表格中填充的数据。
  • XML 提要也工作正常,因为我可以看到每分钟更新一次的时间,也有一个 cron 工作。
  • 我只有这个功能作为一个项目。

    function getData() {
      var sheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("prices");
      var queryString = Math.random();
      var cellFunction = '=ImportXML("http://myxmldata.com/data-xml.php","//data/date")';
      sheetName.getRange('A2').setValue(cellFunction);
    } 
    
    Run Code Online (Sandbox Code Playgroud)

    那么怎么了?

google-sheets google-apps-script google-sheets-importxml

1
推荐指数
1
解决办法
5979
查看次数

XPath 查询以使用 importxml 在 Google Sheets 中提取当前价格、交易量和平均交易量

我正在尝试从 Yahoo Finance 导入 Google 表格中的股票实时价格、实时交易量和平均交易量,但不确定 XPath 是否用于相同的用途。

例如,对于 URL

https://sg.finance.yahoo.com/quote/AMZN

under summary tab:
realtime price: 1910.21
volume: https://sg.finance.yahoo.com/quote/AMZN
avg. volume: 4,406,091
Run Code Online (Sandbox Code Playgroud)

在这里我尝试修改下面的代码但不确定 XPath

=INDEX(IMPORTXML("https://sg.finance.yahoo.com/quote/AMZN","//div[@id='quote-header-info']/div[last()]/div[1]"),1)
Run Code Online (Sandbox Code Playgroud)

xpath google-sheets yahoo-finance google-sheets-importxml

0
推荐指数
1
解决办法
2916
查看次数