如何使用httpwebrequest登陆,并保持登陆状态(以便后续采集网页数据),请帮忙说一下分析过程,如对抓包结果怎么分析?模拟登陆时都要提交哪些信息,最好给出相应代码,谢谢。
4条回答 默认 最新
- Go 旅城通票 2017-02-17 08:11关注
/// <summary> /// 结果数组 /// </summary> public class StockResult { public System.Collections.Generic.List<object[]> result; } public class Stock { /// <summary> /// 下载url html代码 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string GetHtml(string url) { string html = null; System.Net.WebClient wc = new System.Net.WebClient(); try { html = wc.DownloadString(url); } catch { } wc.Dispose(); return html; } /// <summary> /// 下载接口数据序列化为对象 /// </summary> /// <param name="token">token</param> /// <param name="page">第几页</param> /// <returns></returns> private static StockResult LoadData(string token,string page) { //一次采集10条,要采集更多自己修改perpage=10的参数 string url = "http://www.iwencai.com/stockpick/cache?token={0}&p={1}&perpage=10&changeperpage=1&showType=[%22%22,%22%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22]"; url = string.Format(url, token, page); string html = GetHtml(url); StockResult r = null; if (html != null) { //序列化为对象,用到了Newtonsoft.Json.Net20.dll //可以去http://www.w3dev.cn/download/20130218/Newtonsoft.Json.Net20.dll-download.aspx这里下载 r = Newtonsoft.Json.JsonConvert.DeserializeObject<StockResult>(html); } return r; } /// <summary> /// 前后截取 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="s">开始字符串</param> /// <param name="e">结束字符串</param> /// <returns></returns> protected static string GetSubstring(string str, string s, string e) { string r = null; int sIndex = str.IndexOf(s); if (sIndex != -1) { int len = s.Length, eIndex = str.IndexOf(e, sIndex + len); if (eIndex != -1) r = str.Substring(sIndex + len, eIndex - sIndex - len); } return r; } /// <summary> /// 获取token /// </summary> /// <returns></returns> private static string GetToken() { string url = "http://www.iwencai.com/stockpick/search?typed=1&preParams=&ts=1&f=3&qs=pc_%7Esoniu%7Estock%7Estock%7Ehistory%7Equery&selfsectsn=&querytype=&searchfilter=&tid=stockpick&w=%E6%A6%82%E5%BF%B5%E6%9D%BF%E5%9D%97%EF%BC%8C%E5%9F%8E%E5%B8%82"; string r = GetHtml(url); if (r != null) r = GetSubstring(r, "token\":\"", "\""); return r; } /// <summary> /// 测试函数,获取3页数据输出 /// </summary> public static void TestStockDemo() { string token = GetToken(); if (token == null) HttpContext.Current.Response.Write("获取token失败!"); else { for (int i = 1; i <= 3; i++) { StockResult r = LoadData(token, i.ToString()); if (r == null||r.result==null) HttpContext.Current.Response.Write("下载第" + i.ToString() + "页数据失败!<hr>"); else { HttpContext.Current.Response.Write("第" + i.ToString() + "页数据<hr>"); foreach (object[] data in r.result) { foreach (object o in data) HttpContext.Current.Response.Write(o.ToString() + "|"); HttpContext.Current.Response.Write("<br>"); } } } } } }
测试
protected void Page_Load(object sender, EventArgs e) { Stock.TestStockDemo(); }
输出
第1页数据603603.SH|博天环境|9.71|44.065|新股与次新股|海淀区|1|--|北京市|公用事业-环保工程-环保工程及服务|
002849.SZ|威星智能|17.40|44.040|新股与次新股|杭州市|1|--|浙江省|机械设备-电气设备-电气自控设备|
000507.SZ|珠海港|7.43|10.074|珠港澳物流合作园;一带一路;中巴经济走廊;横琴新区;PTA;新能源;珠海国资改革;粤港澳自贸区;珠海主题公园;地方国资改革;PTA涨价;参股新三板;珠三角区;广东自贸区|珠海市|14|5211970501.5|广东省|交通运输-港口航运-港口Ⅲ|
000548.SZ|湖南投资|10.30|10.043|好莱坞;交通示范区;长株潭;湖南国资改革;长江中游城市群;地方国资改革|长沙市|6|4672521790.56|湖南省|交通运输-公路铁路运输-高速公路Ⅲ|
300099.SZ|尤洛卡|13.38|10.033|煤矿安全;军工|泰安市|2|4345278561.92|山东省|机械设备-专用设备-冶金矿采化工设备|
002323.SZ|雅百特|17.99|10.031|一带一路;智能建筑;并购重组;光伏概念;建筑节能|盐城市|5|4273758382.5|江苏省|建筑材料-建筑装饰-专业工程|
300609.SZ|汇纳科技|14.15|10.031|新股与次新股|金山区|1|321500000|上海市|信息服务-计算机应用-软件开发及服务|
603615.SH|茶花股份|17.66|10.031|新股与次新股|福州市|1|963000000|福建省|化工-化工合成材料-其他塑料制品|
300123.SZ|太阳鸟|20.08|10.027|军民融合;高端装备;好莱坞;海洋经济;融资租赁;海洋执法;游艇;军工;元器件|益阳市|9|5002257803.5|湖南省|国防军工-国防军工-船舶制造|
300610.SZ|晨化股份|22.28|10.025|新股与次新股|扬州市|1|506250000|江苏省|化工-化学制品-其他化学制品|
第2页数据601890.SH|亚星锚链|9.22|10.024|南海;军工;海洋经济;船舶升级概念;沪港通概念;高端装备;航母;海工装备;村镇银行|泰州市|9|8039772000|江苏省|国防军工-国防军工-船舶制造|
300615.SZ|欣天科技|25.04|10.018|新股与次新股|深圳市|1|455200000|广东省|信息设备-通信设备-通信传输设备|
600184.SH|光电股份|25.70|10.017|军工改制;央企整合;航母;航天军工;引力波;军工;央企国资改革;光伏概念|襄阳市|8|9782252895.36|湖北省|国防军工-国防军工-地面兵装|
300612.SZ|宣亚国际|28.12|10.016|新股与次新股|朝阳区|1|460080000|北京市|信息服务-传媒-营销服务|
601882.SH|海天精工|26.81|10.012|新股与次新股|宁波市|1|1272114000|浙江省|机械设备-通用设备-机床工具|
603330.SH|上海天洋|38.35|10.012|新股与次新股|嘉定区|1|522900000|上海市|化工-化学制品-其他化学制品|
300605.SZ|恒锋信息|26.38|10.008|新股与次新股|福州市|1|503580000|福建省|信息服务-计算机应用-软件开发及服务|
603208.SH|江山欧派|57.60|10.008|新股与次新股|衢州市|1|1058195600|浙江省|轻工制造-家用轻工-家具|
300607.SZ|拓斯达|47.82|10.007|新股与次新股|东莞市|1|787676400|广东省|机械设备-通用设备-其它通用机械|
300608.SZ|思特奇|34.08|10.007|新股与次新股|海淀区|1|522167900|北京市|信息服务-计算机应用-软件开发及服务|
第3页数据603690.SH|至纯科技|16.71|10.007|新股与次新股|闵行区|1|789880000|上海市|机械设备-专用设备-其它专用机械|
002346.SZ|柘中股份|40.02|10.006|保障房|奉贤区|1|2903124000|上海市|机械设备-电气设备-输变电设备|
603637.SH|镇海股份|38.92|10.006|新股与次新股|宁波市|1|904889494|浙江省|建筑材料-建筑装饰-专业工程|
002846.SZ|英联股份|25.73|10.004|新股与次新股|汕头市|1|701700000|广东省|轻工制造-包装印刷-包装印刷Ⅲ|
002558.SZ|世纪游轮|70.27|10.003|游轮;中概股回归;网络游戏;虚拟现实;在线旅游|南岸区|5|4113648420|重庆市|信息服务-传媒-互联网信息服务|
300578.SZ|会畅通讯|43.88|10.003|新股与次新股|金山区|1|718020000|上海市|信息设备-通信设备-通信配套服务|
002839.SZ|张家港行|17.82|10.000|新股与次新股;村镇银行|苏州市|2|2928312000|江苏省|金融服务-银行-银行Ⅲ|
002848.SZ|高斯贝尔|13.31|10.000|新股与次新股|郴州市|1|505780000|湖南省|信息设备-通信设备-终端设备|
300597.SZ|吉大通信|30.25|10.000|新股与次新股|长春市|1|1650000000|吉林省|信息设备-通信设备-通信配套服务|
603626.SH|科森科技|48.07|10.000|新股与次新股|苏州市|3|2301534790|江苏省|机械设备-通用设备-金属制品|本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘