当前位置: 代码迷 >> ASP.NET >> 京东商城 源抓取不到,求答案,该如何解决
  详细解决方案

京东商城 源抓取不到,求答案,该如何解决

热度:10067   发布时间:2013-02-25 00:00:00.0
京东商城 源抓取不到,求答案
在电商行业工作。为公司做过很多有助于提高工作效率的软件。

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

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


就是京东始终搞不定。


比如最简单的例子:

这是一个后台的京东订单详情 链接: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

百度一下,有很多这样的例子。
  相关解决方案