Jquery .get()有效,但.load()不起作用

时间:2011-08-30 14:38:46

标签: jquery screen-scraping

之前我曾问过类似的问题 -

我有一个网址 - https://stanfordwho.stanford.edu/SWApp/authSearch.do?search=pra **& stanfordonly = checkbox& affilfilter = everyone& filters = closed

我正在进行,我想称之为 - $("#StanfordProfile h2").load("https://stanfordwho.stanford.edu/SWApp/authDetail.do?key=DR647E481&search=pra**&soundex=&stanfordonly=checkbox&affilfilter=everyone&filters=closed")

当我在第二页时,选择器工作,但是当我尝试上面的命令时,它不起作用。我认为这样可行,因为我从同一网站上的另一个页面加载(因为我不应该因为同源策略而遇到问题)。

现在,我尝试使用.get(url),它带有一个回调函数来警告数据 - 它向我显示正确的html-有没有人知道为什么会发生这种情况?另外,我还是想用我的jquery选择器来获得我想要的东西 - 这是可能的吗?

谢谢!

编辑 -

这是我正在尝试加载的页面的html代码 -

    <div id="container_header">
<div id="topnav">
<div id="content_main">
<div id="subnav">
<div id="SWhoBody" class="stanford">
<div id="SWhoLogin">
<div id="SWhoSearch">
<div id="ResultsHead">
<div id="Toggle">
<div id="ResultsNav">
<div id="StanfordResults">
   <h2>
     <dl>
        <dt>
           <a onmouseout="swho.alone.OnMouseOut(event)" onmouseover="swho.alone.showPopup(event, 'DR647E481', 'pra**', '', 'checkbox', 'everyone', 'closed')" href="/SWApp/authDetail.do?key=DR647E481&search=pra**&soundex=&stanfordonly=checkbox&affilfilter=everyone&filters=closed">Ajay Prakash</a>
</dt>
<dd>

这是我想要的HTML -

    <head>
<body class="stanford" onload="startstate()">
<div class="hidden">
<div id="printbanner">
<div id="container">
<div id="container_header">
<div id="topnav">
<div id="content_main">
   <div id="subnav">
   <div id="SWhoBody" class="stanford">
      <div id="SWhoLogin">
      <div id="SWhoSearch">
      <div id="ResultsHead">
      <div id="ProfileNav">
      <div id="StanfordProfile">
            <h2> Ajay Prakash </h2>
      <div id="Contact">
      <div id="HomeInfo">
      <div id="Ids">

我没有使用任何其他javascript代码,因为我正在使用控制台

1 个答案:

答案 0 :(得分:1)

评论主题变得越来越长,我想我现在知道你想要的答案:

您可以在网址后面添加一个选择器,从第二页指定您想要的项目:

$('#StanfordResults h2').load('https://stanfordwho.stanford.edu/SWApp/authDetail.do?key=DR647E481&search=pra**&soundex=&stanfordonly=checkbox&affilfilter=everyone&filters=closed #StanfordProfile h2');

您可能需要更改第一页选择器(#StanfordResults h2)以匹配您希望放置结果的位置。

在您不希望将结果直接插入另一个位置的情况下使用$ .get()的等价物将是:

$.get('https://stanfordwho.stanford.edu/SWApp/authDetail.do?key=DR647E481&search=pra**&soundex=&stanfordonly=checkbox&affilfilter=everyone&filters=closed', function(data) {
  $('#StanfordResults h2').html(data);
});

不是在这个回调中设置.html(),而是用'data'做你想做的事。不过,您将以这种方式获得整个响应HTML。