如何使用jquery从其他网站获取指定的文本?

时间:2017-04-11 05:02:31

标签: javascript jquery html ajax cross-domain

我需要在另一个网站(跨域)中的跨度,div内,div等内找到文本 经过几个小时的研究,我仍然无法得到任何工作。截至目前,这就是我所拥有的:

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
</head>
<body>
    <div id="thisdiv"></div>
    <script>
        $.get( "http://landnstemacademy.blogspot.com/", function( data ) {
        $( "#Blog1" )
        $("span:contains('Quote of the day')")
            .contents()
                .filter(function(){
                    return this.nodeType !== 3;
                })
            .clone().prependTo( "#thisdiv" );
        }
    </script>
</body>

我对jquery很新,所以如果我偏离轨道,请原谅我。任何帮助都非常感谢。

另外,有没有办法指定&#34;指定元素之后的元素&#34;?我需要在此之后获取元素的内容,但它不是唯一的。

如果需要,网站为http://landnstemacademy.blogspot.com/

编辑:我相信我可能已经读过某些涉及json的方法可以绕过这些&#34;反跨域&#34;规则。那会有用吗?可以获得文字吗?我还要注意,如果可能的话,我想将所有代码约束到一个文件(没有用于php的额外文件文件),但我理解这是否因为任何原因而变得太难/不可能。再次感谢你。

2 个答案:

答案 0 :(得分:0)

由于跨域资源共享CORS机制,您不能访问您域中的网站内容。

这种机制有一些安全原因可以防止clickjacking等攻击。

如果您尝试运行请求,则会出现以下错误,因此您的问题首先不是jquery。

  

XMLHttpRequest无法加载http://landnstemacademy.blogspot.com/。没有   &#39;访问控制允许来源&#39;标题出现在请求的上   资源。起源&#39; null&#39;因此不允许访问。

然后,只有您可以访问此数据的方式是,如果您尝试从中获取数据的网站在使用Access-Control-Allow-Origin: * http标头提供请求的响应时允许跨源访问。

答案 1 :(得分:0)

您可以使用以下内容:

Jquery的:

    JFrame frame = new JFrame(...);
    frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

    frame.addWindowListener( new WindowAdapter()
    {
        public void windowClosing(WindowEvent e)
        {
            JFrame frame = (JFrame)e.getSource();
    ....................
}
}

Php:$.ajax({ url : 'ajax/get_random_quotes.php', method : 'get', success : function(response) { var data = JSON.parse(response); // You can use response like data.col1 or data.col2 } });

get_random_quotes.php

注意:由于跨域资源共享CORS机制,您不能从您的域访问网站内容。因此仅$url = "http://quotes.stormconsultancy.co.uk/random.json"; $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $response = curl_exec($ch); curl_close($ch); echo $response; exit; 不足以完成您的任务,您必须使用ajax()