IMPORTHTML/IMPORTXML突然归来'resource at URL not found'
IMPORTHTML/IMPORTXML suddenly returning 'resource at URL not found'
我在 googlesheets 中的 importhtml 和 importxml 功能突然停止工作。我猜它与 URL 有关,因为它已经工作了大约一个月(自从我设置它以来)并且最近才停止(上周)。不幸的是,现在有一半的床单显示#N/A。只是想知道在这方面是否有更高级的人可以分享他们对这个问题的见解。
导入XML 示例:
URL: https://au.finance.yahoo.com/quote/AZJ.AX/profile?p=AZJ.AX
XML: //*[@id='Col1-0-Profile-Proxy']/section/div[1]/div/div/p[2]/span[4]
返回“URL 处的资源未找到”的函数。
这是一个 link 示例文件:
https://docs.google.com/spreadsheets/d/1ml3cCHIEk4vTCn3GyymXGxyCpVBgMprMzGP7OYhKPC0/edit?usp=sharing
感谢任何花时间调查问题的人。谢谢!
我有一个类似的问题 - 使用上周停止工作的 Google Sheets/Yahoo Finance/Importhtml。有兴趣看看您是否得到解决方案。
编辑:
这看起来可能实际上是 Google 方面的问题:
没有任何解决方案,但如果它影响到您或您想要更新,请为该问题加注星标。
可能雅虎改变了网站结构
我没有经常使用 Yahoo 站点,但也许它以某种方式更改了格式,使 IMPORTXML 无法读取。我也用 IMPORTHTML 测试了它,结果相同。不过,该功能本身仍在与其他网站一起使用。
正在测试您提供的站点,禁用JavaScript以确保数据不是动态生成的(这使得 IMPORTHTML 无法读取),实际上有一个 table:
<table class="W(100%)" data-reactid="36">
<thead data-reactid="37">
<tr class="C($tertiaryColor) Fz(xs) BdB Bdc($seperatorColor)" data-reactid="38">
<th class="Ta(start) Py(6px) Fw(n)" data-reactid="39"><span data-reactid="40">Name</span></th>
<th class="Ta(start) Py(6px) Fw(n)" data-reactid="41"><span data-reactid="42">Title</span></th>
<th class="Ta(end) Py(6px) Fw(n)" data-reactid="43"><span data-reactid="44">Pay</span></th>
<th class="Ta(end) Py(6px) Fw(n)" data-reactid="45"><span data-reactid="46">Exercised</span></th>
<th class="Ta(end) Py(6px) Fw(n)" data-reactid="47"><span data-reactid="48">Year born</span></th>
</tr>
</thead>
<tbody data-reactid="49">
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="50">
<td class="Ta(start)" data-reactid="51">
<span class="" data-reactid="52">
<!-- react-text: 53 -->Mr. Andrew T. Harding<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="54">
<span class="" data-reactid="55">
<!-- react-text: 56 -->MD, CEO & Director<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="57">
<span class="" data-reactid="58">
<!-- react-text: 59 -->2.78M<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="60"><span class="" data-reactid="61"><span data-reactid="62">N/A</span></span></td>
<td class="Ta(end)" data-reactid="63">
<span class="" data-reactid="64">
<!-- react-text: 65 -->1967<!-- /react-text -->
</span>
</td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="66">
<td class="Ta(start)" data-reactid="67">
<span class="" data-reactid="68">
<!-- react-text: 69 -->Mr. George Lippiatt<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="70">
<span class="" data-reactid="71">
<!-- react-text: 72 -->CFO & Group Exec. Strategy<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="73">
<span class="" data-reactid="74">
<!-- react-text: 75 -->481.25k<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="76"><span class="" data-reactid="77"><span data-reactid="78">N/A</span></span></td>
<td class="Ta(end)" data-reactid="79"><span class="" data-reactid="80"><span data-reactid="81">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="82">
<td class="Ta(start)" data-reactid="83">
<span class="" data-reactid="84">
<!-- react-text: 85 -->Mr. Ed McKeiver<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="86">
<span class="" data-reactid="87">
<!-- react-text: 88 -->Group Exec. of Coal<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="89">
<span class="" data-reactid="90">
<!-- react-text: 91 -->861k<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="92"><span class="" data-reactid="93"><span data-reactid="94">N/A</span></span></td>
<td class="Ta(end)" data-reactid="95"><span class="" data-reactid="96"><span data-reactid="97">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="98">
<td class="Ta(start)" data-reactid="99">
<span class="" data-reactid="100">
<!-- react-text: 101 -->Mr. Michael G. Carter BEng, BBus, MAICD, AFAIM<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="102">
<span class="" data-reactid="103">
<!-- react-text: 104 -->Group Exec. of Technical Services & Planning<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="105"><span class="" data-reactid="106"><span data-reactid="107">N/A</span></span></td>
<td class="Ta(end)" data-reactid="108"><span class="" data-reactid="109"><span data-reactid="110">N/A</span></span></td>
<td class="Ta(end)" data-reactid="111"><span class="" data-reactid="112"><span data-reactid="113">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="114">
<td class="Ta(start)" data-reactid="115">
<span class="" data-reactid="116">
<!-- react-text: 117 -->Mr. Christopher L. Vagg<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="118">
<span class="" data-reactid="119">
<!-- react-text: 120 -->Head of Investor Relations & Group Treasurer<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="121"><span class="" data-reactid="122"><span data-reactid="123">N/A</span></span></td>
<td class="Ta(end)" data-reactid="124"><span class="" data-reactid="125"><span data-reactid="126">N/A</span></span></td>
<td class="Ta(end)" data-reactid="127"><span class="" data-reactid="128"><span data-reactid="129">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="130">
<td class="Ta(start)" data-reactid="131">
<span class="" data-reactid="132">
<!-- react-text: 133 -->Mark Hairsine<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="134">
<span class="" data-reactid="135">
<!-- react-text: 136 -->Mang. of Media & Communications<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="137"><span class="" data-reactid="138"><span data-reactid="139">N/A</span></span></td>
<td class="Ta(end)" data-reactid="140"><span class="" data-reactid="141"><span data-reactid="142">N/A</span></span></td>
<td class="Ta(end)" data-reactid="143"><span class="" data-reactid="144"><span data-reactid="145">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="146">
<td class="Ta(start)" data-reactid="147">
<span class="" data-reactid="148">
<!-- react-text: 149 -->Ms. Tina Thomas<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="150">
<span class="" data-reactid="151">
<!-- react-text: 152 -->Group Exec. of Corp.<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="153"><span class="" data-reactid="154"><span data-reactid="155">N/A</span></span></td>
<td class="Ta(end)" data-reactid="156"><span class="" data-reactid="157"><span data-reactid="158">N/A</span></span></td>
<td class="Ta(end)" data-reactid="159"><span class="" data-reactid="160"><span data-reactid="161">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="162">
<td class="Ta(start)" data-reactid="163">
<span class="" data-reactid="164">
<!-- react-text: 165 -->James Coe<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="166">
<span class="" data-reactid="167">
<!-- react-text: 168 -->Mang. of Market Intelligence & Sustainability<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="169"><span class="" data-reactid="170"><span data-reactid="171">N/A</span></span></td>
<td class="Ta(end)" data-reactid="172"><span class="" data-reactid="173"><span data-reactid="174">N/A</span></span></td>
<td class="Ta(end)" data-reactid="175"><span class="" data-reactid="176"><span data-reactid="177">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="178">
<td class="Ta(start)" data-reactid="179">
<span class="" data-reactid="180">
<!-- react-text: 181 -->Mr. Dominic Dupont Smith<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="182">
<span class="" data-reactid="183">
<!-- react-text: 184 -->Company Sec.<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="185"><span class="" data-reactid="186"><span data-reactid="187">N/A</span></span></td>
<td class="Ta(end)" data-reactid="188"><span class="" data-reactid="189"><span data-reactid="190">N/A</span></span></td>
<td class="Ta(end)" data-reactid="191">
<span class="" data-reactid="192">
<!-- react-text: 193 -->1964<!-- /react-text -->
</span>
</td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="194">
<td class="Ta(start)" data-reactid="195">
<span class="" data-reactid="196">
<!-- react-text: 197 -->Lowana Riddiford<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="198">
<span class="" data-reactid="199">
<!-- react-text: 200 -->Warehouse Logistics Coordinator<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="201"><span class="" data-reactid="202"><span data-reactid="203">N/A</span></span></td>
<td class="Ta(end)" data-reactid="204"><span class="" data-reactid="205"><span data-reactid="206">N/A</span></span></td>
<td class="Ta(end)" data-reactid="207"><span class="" data-reactid="208"><span data-reactid="209">N/A</span></span></td>
</tr>
</tbody>
</table>
每个 <td>
中有一个 <span>
元素这一事实不应影响 IMPORTXML / IMPORTHTML,因为在其他站点中它可以获取 [=14] 中的文本内容=]标签没问题。
然而,react <!-- react-text: 193 -->1964<!-- /react-text -->
的评论可能会导致电子表格功能变得混乱。
他们的 robots.txt 文件似乎也不包含任何线索:
User-agent: *
Sitemap: https://au.finance.yahoo.com/sitemaps/finance-sitemap_index_AU_en-AU.xml.gz
Disallow: /r/
Disallow: /__rapidworker-1.2.js
Disallow: /__blank
Disallow: /_td_api
Disallow: /_remote
Google 的用户代理是 Mozilla/5.0 (compatible; GoogleDocs; apps-spreadsheets; http://docs.google.com)
所以我不能确定是什么原因导致网站出错,但这很可能是 Yahoo 方面的变化。也许他们有速率限制 Google 的 IP 地址
使用 UrlFetchApp 或更好,一个实际的 API
我相信您正在突破简单的电子表格函数的极限。这很好,请不要误会我的意思,但是,使用真正不适用于重型刮擦的工具进行刮擦并不是很可靠。考虑到网络抓取作为信息来源也不是 100% 可靠的,因为它经常受到抓取网站更改其 HTML 结构或让内容由 JavaScript 动态生成的影响。事情终究会破裂。
在 Apps 脚本中使用 UrlFetchApp
,您可以更灵活地控制如何抓取数据。
尽管如果这对您来说是一个严重的 activity 并且需要可靠性,那么使用 API 会有所回报。 APISS 设计 用于网站、工作表和数据库以从中获取数据。他们对此表示欢迎。还有一些免费产品。
您的 linked Google Sheet 做得很好。这些例子证实了问题和时机。在上周,报告了先前工作的 sheet 中的许多 linking 错误。 linked Google Sheet 总结了一些调试示例来尝试确定问题所在。
调试示例 Ticker debug1 'C003.F' 没有 link。 linking 错误是“#N/A”'Error Resource at URL not found'。在大多数 sheet 中,大多数 link 现在都出现了故障。
IMPORTXML 示例:
URL: https://de.finance.yahoo.com/quote/
XPath: "//*[@id='quote-header-info']/div[3]/div[1]/div/span[1]"
代码 C2:'C003.F'
公式:=TRANSPOSE(IMPORTXML(CONCATENATE("https://de.finance.yahoo.com/quote/", C2),"//*[@id='quote-header-info'] /div[3]/div[1]/div/span[1]"))
该公式使用 OR '|'用于减少和限制 sheet.
中调用次数的符号
下面是一个link调试示例:https://docs.google.com/spreadsheets/d/1-xXw94LC3QL3rf-IoAAT9stwz06GTNMSV_v1a8YdWFw/edit?usp=sharing
debug1 代码 C2:'C003.F' 没有 link
debug3 自动收报机:'EXSB.DE' 确实 link
debug6 自动收报机:'ALV.DE' 确实 link
linked sheet 中的调试示例演示了一些有效的公式和其他无效的公式。所有网页均已检查并正常运行。
几周来一直遇到同样的问题,importxml 在它之前工作时显示 #N/A - 很感兴趣。
我在 googlesheets 中的 importhtml 和 importxml 功能突然停止工作。我猜它与 URL 有关,因为它已经工作了大约一个月(自从我设置它以来)并且最近才停止(上周)。不幸的是,现在有一半的床单显示#N/A。只是想知道在这方面是否有更高级的人可以分享他们对这个问题的见解。
导入XML 示例:
URL: https://au.finance.yahoo.com/quote/AZJ.AX/profile?p=AZJ.AX
XML: //*[@id='Col1-0-Profile-Proxy']/section/div[1]/div/div/p[2]/span[4]
返回“URL 处的资源未找到”的函数。
这是一个 link 示例文件: https://docs.google.com/spreadsheets/d/1ml3cCHIEk4vTCn3GyymXGxyCpVBgMprMzGP7OYhKPC0/edit?usp=sharing
感谢任何花时间调查问题的人。谢谢!
我有一个类似的问题 - 使用上周停止工作的 Google Sheets/Yahoo Finance/Importhtml。有兴趣看看您是否得到解决方案。
编辑:
这看起来可能实际上是 Google 方面的问题:
没有任何解决方案,但如果它影响到您或您想要更新,请为该问题加注星标。
可能雅虎改变了网站结构
我没有经常使用 Yahoo 站点,但也许它以某种方式更改了格式,使 IMPORTXML 无法读取。我也用 IMPORTHTML 测试了它,结果相同。不过,该功能本身仍在与其他网站一起使用。
正在测试您提供的站点,禁用JavaScript以确保数据不是动态生成的(这使得 IMPORTHTML 无法读取),实际上有一个 table:
<table class="W(100%)" data-reactid="36">
<thead data-reactid="37">
<tr class="C($tertiaryColor) Fz(xs) BdB Bdc($seperatorColor)" data-reactid="38">
<th class="Ta(start) Py(6px) Fw(n)" data-reactid="39"><span data-reactid="40">Name</span></th>
<th class="Ta(start) Py(6px) Fw(n)" data-reactid="41"><span data-reactid="42">Title</span></th>
<th class="Ta(end) Py(6px) Fw(n)" data-reactid="43"><span data-reactid="44">Pay</span></th>
<th class="Ta(end) Py(6px) Fw(n)" data-reactid="45"><span data-reactid="46">Exercised</span></th>
<th class="Ta(end) Py(6px) Fw(n)" data-reactid="47"><span data-reactid="48">Year born</span></th>
</tr>
</thead>
<tbody data-reactid="49">
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="50">
<td class="Ta(start)" data-reactid="51">
<span class="" data-reactid="52">
<!-- react-text: 53 -->Mr. Andrew T. Harding<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="54">
<span class="" data-reactid="55">
<!-- react-text: 56 -->MD, CEO & Director<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="57">
<span class="" data-reactid="58">
<!-- react-text: 59 -->2.78M<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="60"><span class="" data-reactid="61"><span data-reactid="62">N/A</span></span></td>
<td class="Ta(end)" data-reactid="63">
<span class="" data-reactid="64">
<!-- react-text: 65 -->1967<!-- /react-text -->
</span>
</td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="66">
<td class="Ta(start)" data-reactid="67">
<span class="" data-reactid="68">
<!-- react-text: 69 -->Mr. George Lippiatt<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="70">
<span class="" data-reactid="71">
<!-- react-text: 72 -->CFO & Group Exec. Strategy<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="73">
<span class="" data-reactid="74">
<!-- react-text: 75 -->481.25k<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="76"><span class="" data-reactid="77"><span data-reactid="78">N/A</span></span></td>
<td class="Ta(end)" data-reactid="79"><span class="" data-reactid="80"><span data-reactid="81">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="82">
<td class="Ta(start)" data-reactid="83">
<span class="" data-reactid="84">
<!-- react-text: 85 -->Mr. Ed McKeiver<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="86">
<span class="" data-reactid="87">
<!-- react-text: 88 -->Group Exec. of Coal<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="89">
<span class="" data-reactid="90">
<!-- react-text: 91 -->861k<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="92"><span class="" data-reactid="93"><span data-reactid="94">N/A</span></span></td>
<td class="Ta(end)" data-reactid="95"><span class="" data-reactid="96"><span data-reactid="97">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="98">
<td class="Ta(start)" data-reactid="99">
<span class="" data-reactid="100">
<!-- react-text: 101 -->Mr. Michael G. Carter BEng, BBus, MAICD, AFAIM<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="102">
<span class="" data-reactid="103">
<!-- react-text: 104 -->Group Exec. of Technical Services & Planning<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="105"><span class="" data-reactid="106"><span data-reactid="107">N/A</span></span></td>
<td class="Ta(end)" data-reactid="108"><span class="" data-reactid="109"><span data-reactid="110">N/A</span></span></td>
<td class="Ta(end)" data-reactid="111"><span class="" data-reactid="112"><span data-reactid="113">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="114">
<td class="Ta(start)" data-reactid="115">
<span class="" data-reactid="116">
<!-- react-text: 117 -->Mr. Christopher L. Vagg<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="118">
<span class="" data-reactid="119">
<!-- react-text: 120 -->Head of Investor Relations & Group Treasurer<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="121"><span class="" data-reactid="122"><span data-reactid="123">N/A</span></span></td>
<td class="Ta(end)" data-reactid="124"><span class="" data-reactid="125"><span data-reactid="126">N/A</span></span></td>
<td class="Ta(end)" data-reactid="127"><span class="" data-reactid="128"><span data-reactid="129">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="130">
<td class="Ta(start)" data-reactid="131">
<span class="" data-reactid="132">
<!-- react-text: 133 -->Mark Hairsine<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="134">
<span class="" data-reactid="135">
<!-- react-text: 136 -->Mang. of Media & Communications<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="137"><span class="" data-reactid="138"><span data-reactid="139">N/A</span></span></td>
<td class="Ta(end)" data-reactid="140"><span class="" data-reactid="141"><span data-reactid="142">N/A</span></span></td>
<td class="Ta(end)" data-reactid="143"><span class="" data-reactid="144"><span data-reactid="145">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="146">
<td class="Ta(start)" data-reactid="147">
<span class="" data-reactid="148">
<!-- react-text: 149 -->Ms. Tina Thomas<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="150">
<span class="" data-reactid="151">
<!-- react-text: 152 -->Group Exec. of Corp.<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="153"><span class="" data-reactid="154"><span data-reactid="155">N/A</span></span></td>
<td class="Ta(end)" data-reactid="156"><span class="" data-reactid="157"><span data-reactid="158">N/A</span></span></td>
<td class="Ta(end)" data-reactid="159"><span class="" data-reactid="160"><span data-reactid="161">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="162">
<td class="Ta(start)" data-reactid="163">
<span class="" data-reactid="164">
<!-- react-text: 165 -->James Coe<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="166">
<span class="" data-reactid="167">
<!-- react-text: 168 -->Mang. of Market Intelligence & Sustainability<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="169"><span class="" data-reactid="170"><span data-reactid="171">N/A</span></span></td>
<td class="Ta(end)" data-reactid="172"><span class="" data-reactid="173"><span data-reactid="174">N/A</span></span></td>
<td class="Ta(end)" data-reactid="175"><span class="" data-reactid="176"><span data-reactid="177">N/A</span></span></td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="178">
<td class="Ta(start)" data-reactid="179">
<span class="" data-reactid="180">
<!-- react-text: 181 -->Mr. Dominic Dupont Smith<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="182">
<span class="" data-reactid="183">
<!-- react-text: 184 -->Company Sec.<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="185"><span class="" data-reactid="186"><span data-reactid="187">N/A</span></span></td>
<td class="Ta(end)" data-reactid="188"><span class="" data-reactid="189"><span data-reactid="190">N/A</span></span></td>
<td class="Ta(end)" data-reactid="191">
<span class="" data-reactid="192">
<!-- react-text: 193 -->1964<!-- /react-text -->
</span>
</td>
</tr>
<tr class="C($primaryColor) BdB Bdc($seperatorColor) H(36px)" data-reactid="194">
<td class="Ta(start)" data-reactid="195">
<span class="" data-reactid="196">
<!-- react-text: 197 -->Lowana Riddiford<!-- /react-text -->
</span>
</td>
<td class="Ta(start) W(45%)" data-reactid="198">
<span class="" data-reactid="199">
<!-- react-text: 200 -->Warehouse Logistics Coordinator<!-- /react-text -->
</span>
</td>
<td class="Ta(end)" data-reactid="201"><span class="" data-reactid="202"><span data-reactid="203">N/A</span></span></td>
<td class="Ta(end)" data-reactid="204"><span class="" data-reactid="205"><span data-reactid="206">N/A</span></span></td>
<td class="Ta(end)" data-reactid="207"><span class="" data-reactid="208"><span data-reactid="209">N/A</span></span></td>
</tr>
</tbody>
</table>
每个 <td>
中有一个 <span>
元素这一事实不应影响 IMPORTXML / IMPORTHTML,因为在其他站点中它可以获取 [=14] 中的文本内容=]标签没问题。
然而,react <!-- react-text: 193 -->1964<!-- /react-text -->
的评论可能会导致电子表格功能变得混乱。
他们的 robots.txt 文件似乎也不包含任何线索:
User-agent: *
Sitemap: https://au.finance.yahoo.com/sitemaps/finance-sitemap_index_AU_en-AU.xml.gz
Disallow: /r/
Disallow: /__rapidworker-1.2.js
Disallow: /__blank
Disallow: /_td_api
Disallow: /_remote
Google 的用户代理是 Mozilla/5.0 (compatible; GoogleDocs; apps-spreadsheets; http://docs.google.com)
所以我不能确定是什么原因导致网站出错,但这很可能是 Yahoo 方面的变化。也许他们有速率限制 Google 的 IP 地址
使用 UrlFetchApp 或更好,一个实际的 API
我相信您正在突破简单的电子表格函数的极限。这很好,请不要误会我的意思,但是,使用真正不适用于重型刮擦的工具进行刮擦并不是很可靠。考虑到网络抓取作为信息来源也不是 100% 可靠的,因为它经常受到抓取网站更改其 HTML 结构或让内容由 JavaScript 动态生成的影响。事情终究会破裂。
在 Apps 脚本中使用 UrlFetchApp
,您可以更灵活地控制如何抓取数据。
尽管如果这对您来说是一个严重的 activity 并且需要可靠性,那么使用 API 会有所回报。 APISS 设计 用于网站、工作表和数据库以从中获取数据。他们对此表示欢迎。还有一些免费产品。
您的 linked Google Sheet 做得很好。这些例子证实了问题和时机。在上周,报告了先前工作的 sheet 中的许多 linking 错误。 linked Google Sheet 总结了一些调试示例来尝试确定问题所在。 调试示例 Ticker debug1 'C003.F' 没有 link。 linking 错误是“#N/A”'Error Resource at URL not found'。在大多数 sheet 中,大多数 link 现在都出现了故障。
IMPORTXML 示例:
URL: https://de.finance.yahoo.com/quote/
XPath: "//*[@id='quote-header-info']/div[3]/div[1]/div/span[1]"
代码 C2:'C003.F'
公式:=TRANSPOSE(IMPORTXML(CONCATENATE("https://de.finance.yahoo.com/quote/", C2),"//*[@id='quote-header-info'] /div[3]/div[1]/div/span[1]")) 该公式使用 OR '|'用于减少和限制 sheet.
中调用次数的符号下面是一个link调试示例:https://docs.google.com/spreadsheets/d/1-xXw94LC3QL3rf-IoAAT9stwz06GTNMSV_v1a8YdWFw/edit?usp=sharing
debug1 代码 C2:'C003.F' 没有 link
debug3 自动收报机:'EXSB.DE' 确实 link
debug6 自动收报机:'ALV.DE' 确实 link
linked sheet 中的调试示例演示了一些有效的公式和其他无效的公式。所有网页均已检查并正常运行。
几周来一直遇到同样的问题,importxml 在它之前工作时显示 #N/A - 很感兴趣。