日期:2014-05-18  浏览次数:20381 次

京东商城 源抓取不到,求答案
在电商行业工作。为公司做过很多有助于提高工作效率的软件。

最近接到任务,做一个订单统计的软件,整合所有电商平台。

 淘宝有接口,当当能抓取,一号店能抓取,走秀能抓取,都搞定了。


就是京东始终搞不定。


比如最简单的例子:

这是一个后台的京东订单详情 链接:http://order.shop.360buy.com/order/order_orderInfoPage.action?orderId=179245955


直接在浏览器粘贴,都可以进入。

但是用程序抓取 该URL的源时, 返回的结果却总是:请登录。
(我浏览器没有关闭,京东的登录也没有注销,粘贴链接还是能进去,就是走代码抓源就是 请登录。) 

找了很久也找不到破解的方法, 特此请教大家。
C# code

    /// <summary>
    /// 根据Url地址得到网页的html源码  GB2312格式
    /// </summary>
    /// <param name="Url">远程地址</param>
    /// <returns></returns>
    public static string GetWebContent(string Url) {
        string strResult = "";
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
        //声明一个HttpWebRequest请求 
        request.Timeout = 30000;
        //设置连接超时时间 
        request.Headers.Set("Pragma", "no-cache");
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream streamReceive = response.GetResponseStream();
        Encoding encoding = Encoding.GetEncoding("GB2312");
        StreamReader streamReader = new StreamReader(streamReceive, encoding);
        strResult = streamReader.ReadToEnd();
        streamReader.Close();
        streamReceive.Close();
        return strResult;
    }






------解决方案--------------------
当然抓取不到!它是判断你cookie信息来判断你的用户信息和是否登录的。
需要先模拟登录一次,取得登录成功后的cookie。然后携带这个cookie再次请求数据页面。
参考:http://www.cnblogs.com/wanglinglong/archive/2009/08/31/1557261.html

百度一下,有很多这样的例子。