如何阅读网页并使用jQuery提取某些链接?

时间:2011-12-01 12:29:43

标签: javascript jquery

它在同一个域上..我的Jquery代码和要读取的URL。

我想要做的是首先使用Jquery读取网页,然后解析具有“ProductDetails.php”的某些链接,并从网页中提取“ProductCode”到数组中。

html页面可能有很多href =“ProductDetails.php的实例,如下所示。

<a href="ProductDetails.php?ProductCode=SMS%2D15%2DXLG%2DA7&CartID=1" class="carttext colors_productname cart-item-name">item 1 <a>

<a href="ProductDetails.php?ProductCode=SMS%dfdfde&CartID=2" class="carttext colors_productname cart-item-name">test me item <a>

我不知道这是否真的可能

3 个答案:

答案 0 :(得分:2)

你必须做这样的事情:

var filteredAnchors = $( document.body ).find( 'a' ).map(function( _, anchor ) {
   if( anchor.getAttribute('href').indexOf( 'ProductDetails.php' ) === 0 ) {
       return anchor.getAttribute('href').match( /ProductCode=(.*?)&/ )[ 1 ];
   }
}).get();

filteredAnchors现在应该包含所有产品代码。

示例:http://jsfiddle.net/WgwSr/

答案 1 :(得分:1)

这样的事情应该让你开始:

$.ajax({
    url: "pagetoload.html",
    success: function(htmlofthepage) {
        var html = $(htmlofthepage),
            resultarray = []; // the array containing our final result set

        // getting all of the anchor tags we want to look at
        $('a[href^="ProductDetails.php"]', html).each(function () {
            var t = $(this), // the anchor tag
                href = t.prop('href'), // the href of the tag (eg. ProductDetails.php?...)
                start = href.indexOf('ProductCode', 0),
                begin = 0,
                end = 0;

            if (start > -1) {
                begin = href.indexOf('=', start) + 1;
                end = href.indexOf('&', begin);
                resultarray.push(href.split(begin, end));
            }
        });
    }
});

答案 2 :(得分:0)

使用jQuerys each功能:

   jQuery(function($){
     var links = [];
     $("a[href^=ProductDetails.php]").each(function(){
        links.push(this.href.replace(/^.*\?/,'');
     });
   });