京东商城 源抓取不到,求答案,该如何解决
京东商城 源抓取不到,求答案
在电商行业工作。为公司做过很多有助于提高工作效率的软件。
最近接到任务,做一个订单统计的软件,整合所有电商平台。
淘宝有接口,当当能抓取,一号店能抓取,走秀能抓取,都搞定了。
就是京东始终搞不定。
比如最简单的例子:
这是一个后台的京东订单详情 链接:http://order.shop.360buy.com/order/order_orderInfoPage.action?orderId=179245955
直接在浏览器粘贴,都可以进入。
但是用程序抓取 该URL的源时, 返回的结果却总是:请登录。
(我浏览器没有关闭,京东的登录也没有注销,粘贴链接还是能进去,就是走代码抓源就是 请登录。)
找了很久也找不到破解的方法, 特此请教大家。
------解决方案--------------------
当然抓取不到!它是判断你cookie信息来判断你的用户信息和是否登录的。
需要先模拟登录一次,取得登录成功后的cookie。然后携带这个cookie再次请求数据页面。
参考:http://www.cnblogs.com/wanglinglong/archive/2009/08/31/1557261.html
百度一下,有很多这样的例子。
在电商行业工作。为公司做过很多有助于提高工作效率的软件。
最近接到任务,做一个订单统计的软件,整合所有电商平台。
淘宝有接口,当当能抓取,一号店能抓取,走秀能抓取,都搞定了。
就是京东始终搞不定。
比如最简单的例子:
这是一个后台的京东订单详情 链接: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
百度一下,有很多这样的例子。