我正在尝试使用 YQL 获取一些文本,但据我所知,xpath 中的引号把事情弄乱了:
<!DOCTYPE html>
<html>
<body>
<p>le test</p>
<p>
<script src="http://query.yahooapis.com/v1/public/yql?q=select * from html where url='http://www.lethbridgecollege.ca/program/administrative-office-professional' and xpath='//*[@id="node-1075"]/div/div[1]/div/div/p[2]'"></script>
</p>
</body>
</html>
如果将 URL 放在浏览器的地址栏中,则该 URL 可以正常工作,但一旦将其作为脚本 src 放在一些引号 ("") 内,则 xpath='//* [@id="node-1075"]/div/div[1]/div/div/p[2]'
搞砸了。我可以做什么来解决这个问题?
我可以做些什么不同的事情才能使通话正常进行?
最佳答案
您需要对请求的参数进行 URL 编码。当您将 URL 粘贴到地址栏中时,该 URL 会起作用,因为浏览器足够智能,可以对不应出现在 URL 中的字符进行 URL 编码。正确的网址是:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%27http%3A%2F%2Fwww.lethbridgecollege.ca%2Fprogram%2Fadministrative-office-professional%27%20and%20xpath%3D%27%2F%2F*%5B%40id%3D%22node-1075%22%5D%2Fdiv%2Fdiv%5B1%5D%2Fdiv%2Fdiv%2Fp%5B2%5D%27
您可以在此处阅读有关 URL 编码的信息:https://en.wikipedia.org/wiki/Percent-encoding
关于javascript - 如何在 GET 请求中使用 xpath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32507232/