首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery和ajax进行网站抓取

问使用jquery和ajax进行网站抓取
EN

Stack Overflow用户
提问于 2009-12-21 02:06:04
回答 6查看 29.1K关注 0票数 15

我希望能够操纵给定url的html。类似于html抓取。我知道这可以使用curl或一些抓取library.But来完成。我想知道是否可以使用jquery通过ajax向url发出get请求并检索url的html,然后在返回的html上运行jquery代码?

谢谢

EN

回答 6

Stack Overflow用户

发布于 2010-02-17 12:48:46

我想指出的是,在某些情况下,使用jQuery跨域抓取屏幕是完全可以接受的。Windows边栏小工具在允许跨域脚本的“本地计算机区域”中运行。

并且jQuery确实具有将选择器应用于检索到的html内容的能力。您只需将选择器添加到load()方法的url参数的空格后面即可。

下面的示例小工具代码每小时检查一次此页面,并报告页面总浏览量。

代码语言:javascript
复制
<html>
<head>
    <script type="text/javascript" src="jquery.min.js"></script>
    <style>
        body { 
            height: 120px;
            width: 130px;
            background-color: white;
        };
    </style>
</head>

<body>
Question Viewed:
<div id="data"></div>

<script type="text/javascript">

    var url = "http://stackoverflow.com/questions/1936495/website-scraping-using-jquery-and-ajax"

    updateGadget();

    inervalID = setInterval("updateGadget();", 60 * 1000);

    function updateGadget(){

        $(document).ready(function(){
            $("#data").load(url + " .label-value:contains('times')");
        });

    }

</script>

</body>
</html>
票数 8
EN

Stack Overflow用户

发布于 2009-12-21 02:18:26

由于Same Origin Policy的原因,您不能对您的网站所在的域名之外的其他域名执行Ajax请求;这意味着您将不能完全执行您想要的操作。至少是直接的。

一种解决方案是:

  • 在您自己服务器上有某种“代理”,
  • 将您的Ajax请求发送到代理
  • ,该代理将获取另一个域名上的页面,并将其作为对Ajax请求的响应返回给JS代码。

这可以用几乎任何语言在几行代码中完成(比如PHP,使用curl )……或者,您可以使用see服务器的某些功能(例如,请参阅Apache的和 )。

票数 4
EN

Stack Overflow用户

发布于 2012-10-29 16:16:38

这并没有那么难。

代码语言:javascript
复制
$(document).ready(function() {
  baseUrl = "http://www.somedomain.com/";
  $.ajax({
    url: baseUrl,
    type: "get",
    dataType: "",
    success: function(data) {
      //do something with data
    }
  });
});

我认为这可以给你一个很好的线索-- http://jsfiddle.net/skelly/m4QCt/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1936495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档