Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从通过XMLHTTPRequest加载的网页中提取URL的最佳方法?_Javascript_Html_Regex_Xmlhttprequest - Fatal编程技术网

Javascript 从通过XMLHTTPRequest加载的网页中提取URL的最佳方法?

Javascript 从通过XMLHTTPRequest加载的网页中提取URL的最佳方法?,javascript,html,regex,xmlhttprequest,Javascript,Html,Regex,Xmlhttprequest,问题概述 我有一个动态生成的网页,X,其中包括链接到网页的搜索结果,Y1,Y2,Y3等 Y1包含资源URLR1,Y2包含资源URLR2,依此类推 我想通过链接到资源R1,R2等动态增强页面X 可能的解决方案 我目前正在考虑使用JavaScript和XMLHTTPRequest从网页Y1、Y2等检索HTML,然后使用正则表达式提取URL 页面Y1,Y2等的HTML大小为30-100KB 这听起来像是个好计划吗?还是我最好以JSON格式检索每个网页并从中提取资源URL?如果HTML是一种方式,您

问题概述

  • 我有一个动态生成的网页,
    X
    ,其中包括链接到网页的搜索结果,
    Y1
    Y2
    Y3
  • Y1
    包含资源URL
    R1
    Y2
    包含资源URL
    R2
    ,依此类推
  • 我想通过链接到资源
    R1
    R2
    等动态增强页面
    X
可能的解决方案

我目前正在考虑使用JavaScript和XMLHTTPRequest从网页
Y1
Y2
等检索HTML
,然后使用正则表达式提取URL

页面
Y1
Y2
等的HTML大小为30-100KB


这听起来像是个好计划吗?还是我最好以JSON格式检索每个网页并从中提取资源URL?如果HTML是一种方式,您是否有任何建议的优化/快捷方式来搜索30-100KB的文本?

您不想使用正则表达式来提取URL。我建议使用jQuery执行AJAX请求,然后使用jQuery从服务器返回的HTML中解析和过滤URL

jQuery.ajax({
    url: "http://my.url.here",
    dataType: "html";
    ...
    success: function(data) {
        jQuery("a", data).each(function() {
            var $link = jQuery(this);
            ...
            ...
        });
    }
    ...
});
如果jQuery不是一个选项,那么当您得到回复时,您可以这样做:

var html = XHR.responseText;
var div = document.createElement("div");
div.innerHTML = html;

//you can now search for nodes inside your div.
//The following gives you all the anchor tags
div.getElementsByTagName('a'); 
...

不幸的是,jQuery不是一个选项。然而,我喜欢另一种声音——干杯!