读书人

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

发布时间: 2012-04-13 13:50:24 作者: rapoo

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

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

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


就是京东始终搞不定。


比如最简单的例子:

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

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

读书人网 >asp.net

热点推荐