html - 尝试不同的 Xpath,它们都不起作用
问题描述
我的目标是从https://www.tipranks.com/stocks/amzn/stock-analysis导入分数,因为你可以看到这里的分数是八角形图像中显示的“10”,这个分数对于不同的公司是不同的例如https://www.tipranks.com/stocks/roku/stock-analysis的得分为“5”。
当我检查我看到的元素时:
<text y="100" dy="0.32em"><tspan x="100" text-anchor="middle">10</tspan></text>
所以我正在使用 googledocs 和 Importxml 函数,我尝试了很多不同的 Xpath,但都返回 #N/A
我尝试了以下作为xpath:
//时间跨度
//时间跨度[1]
//文本/tspan[1]
//文本[1]/tspan[1]
//svg/文本[1]/tspan[1]
我什至尝试输入完整的 xpath
/html/body/div[1]/div/div/main/div/div/article/div[2]/div/main/div[1]/div[2]/section[1]/div[1] /div[1]/div/svg/text/tspan
请有人指导我哪里出错了。
我在谷歌文档上运行的功能是:
=进口XML(A1,A2)
其中 A1 是https://www.tipranks.com/stocks/amzn/stock-analysis 而 A2 是上面提到的 xpath 之一
解决方案
Google Sheets
由于网站用于Javascript
显示数据,因此无法使用。您可以使用Selenium
刮擦这个或类似的工具。
如果你真的想用 GS 做这个,你可以使用ImportfromWeb插件(免费计划中请求的数量是有限的)。您必须指定使用 `jsrendering.
以下 XPath 将选择您要查找的内容:
//div[contains(@class,"active")]/span
C6 中的公式:
=IMPORTFROMWEB(C2;C3;B4:C4)
输出 :
推荐阅读
- python - Python Selenium 修改和运行脚本
- python - 不“等待”的协程与函数有什么不同吗?
- ruby - 有条件的计数数组
- c++ - boost::lockfree:queue 中的内存排序
- laravel-5 - 更改域后的laravel不起作用链接
- python - Python - 读取格式不正确的 xml 文件
- java - 我无法在 Spring Boot 中使用 google pubsub 模拟器发送消息
- excel - 运行时错误“1004”:应用程序定义或对象定义错误
- python - TensorFlow 2.0:无法运行最小 TF 教程:TypeError:无法将 int64 转换为张量或操作
- qliksense - 为什么 MoneyFormat 脚本变量不起作用?