如何使用Javascript执行客户端web抓取
How do I perform clientside web-scraping with Javascript?
如何在不违反同源策略的情况下做到这一点?我曾尝试过使用一个类似的网站,但没有成功http://anyorigin.com/但它不起作用。我该如何做到这一点?
EDIT 4/1/20-修复非功能代码:
事实证明YQL已经不起作用了,但我们不会让它阻止我们
事实证明,有一个名为CloudQuery的免费服务,我们可以很容易地使用它来完成同样的事情。不幸的是,在一段时间内,您可以拨打的电话数量限制非常低。
var myUrl = "https://cloudquery.t9t.io/query?url=https%3A%2F%2Fstackoverflow.com%2Fusers%2F5732397%2Fstardustgogeta&selectors=*:nth-child(2)%20%3E%20*:nth-child(1)%20%3E%20*:nth-child(1)%20%3E%20*:nth-child(1)%20%3E%20*:nth-child(1)%20%3E%20*:nth-child(2)%20%3E%20*%20%3E%20*:nth-child(1)";
fetch(myUrl).then(r => r.json()).then(r => {document.write(r.contents[0].innerText)});
老答案:
事实证明,雅虎的YQL(雅虎查询语言)可以使用XPath在线查找页面HTML的元素。
只需在您的文档中包含以下内容:
<div id="a"></div>
<script>
var yqlCallback = function(data){
var rep = data.query.results.div;
document.getElementById('a').innerHTML = "StardustGogeta's reputation is "+rep+'.';
};
</script>
<script type='application/javascript' src="https://query.yahooapis.com/v1/public/yql?q=select%20content%20from%20html%20where%20url%3D'http%3A%2F%2Fstackoverflow.com%2Fusers%2F5732397%2Fstardustgogeta'%20and%20xpath%3D'%2F%2Fdiv%5B%40class%3D%22reputation%22%5D'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=yqlCallback"></script>
相关文章:
- 如何使用Javascript执行客户端web抓取
- 如何抓取使用直接Web远程处理(DWR)返回操纵页面的Javascript的网站's的HTML
- 节点.JS - 如何限制多承诺的请求以防止溢出(Web 抓取)
- 从 Web 抓取数据并同时执行 api 调用的编程语言
- 使用 web-harvest 抓取 HTML 文件中的 javascript 变量
- 从需要登录[Node.js]的web应用程序中提取(抓取)数据
- web抓取-点击ajax调用,然后抓取页面(可以在python中完成)
- 如何从asmx web服务生成的页面中抓取数据
- AngularJS应用程序中的Web抓取
- Web抓取使用javascript的网站
- NPM请求不能从url中获取html.(Web抓取)
- Web抓取与Javascript内容使用Python PyQt
- Web抓取Python使用谷歌Chrome扩展
- Web抓取模式窗口(对话框)使用jsoup
- 我如何将这个PhantomJS脚本更改为NodeJS进行web抓取
- 使用异步函数返回的数据的正确方法(web抓取示例)
- 使用移动Web应用程序进行Web抓取
- 在Node.js中进行Web抓取/解析以检测HTML页面的语言
- 调用Javascript返回web抓取的数据
- 在使用HttpWebRequest进行web抓取时,如何绕过未定义的JavaScript错误