0

我有一个 ajax 帖子向 php 发送一个网站地址,它检索它,然后我希望 jquery 在网站中找到某些元素并检索这些元素中的文本。它适用于 h1 h2 pa 等一些元素,但不适用于所有网站,我无法获取正文和元标记,即 body.text 什么也不返回。是我的 ajax 帖子还是 php 导致了这里的问题?

这是我的ajax帖子

var dataString = name;

            $.ajax({
      type: "POST",
      url: "senddom.php",
      data: {"dataString" : dataString },
      dataType: "json",
      success: function(response) {
  $('body').append("<p> contents of title:" + $(response).find("Title").text()+ "</p>");          
  $('body').append("<p> contents of meta:" + $(response).find('Meta').text()+ "</p>");      
  $('body').append("<p> contents of all: " + $(response).find('body').text() + "</p>");

 $(response).find('p').each(function() {
  $('body').append("<p> contents of p: " + $(this).text() + "</p>");
});

和我刚刚开始学习的 php

<?php 
    $site= $_POST['dataString'];             // get data
function curl_get($site){
    $useragent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$site);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);   
    $data=curl_exec($ch);
    curl_close($ch);
    return $data;
}

function getdom($site){
    $html = curl_get($site);
    // Create a new DOM Document
    $xml = new DOMDocument();
    @$xml->loadHTML($html);
   echo json_encode($html);  
}
echo getdom($site);
?>
4

1 回答 1

0

在 jQuery doc 上,我发现了一些有趣的东西。我们不能.text()在脚本上使用方法。所以我很确定,你的身体里有脚本,所以.text()不起作用。使用.html(),它应该工作。

http://api.jquery.com/text/

于 2013-01-24T20:31:39.210 回答