以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 登陆浏览器 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148339) |
||||
-- 作者:yangwenghd -- 发布时间:2020/4/5 22:56:00 -- 登陆浏览器
老师 能帮忙看看这个吗?居然可以登录进去了也,但是不知道怎么自动登录,能帮忙看看吗?感谢 感谢, 感谢 感谢
[此贴子已经被作者于2020/4/5 23:22:17编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/4/6 9:57:00 -- 这个我也不会 |
||||
-- 作者:yangwenghd -- 发布时间:2020/4/6 10:47:00 -- 谢谢老师,老师,如果我登录,如何把gps的位置经纬度输入表A 的第一列和第二列呀,感谢老师。
|
||||
-- 作者:有点蓝 -- 发布时间:2020/4/6 11:20:00 -- 需要做接口开发,比如:http://lbsyun.baidu.com/index.php?title=webapi |
||||
-- 作者:yangwenghd -- 发布时间:2020/4/6 11:43:00 -- 可以从网站里面读取吗?比如手动登陆以后,进入地图页面,然后查看网页的代码,查看的定位的坐标或者经纬度,这样获取可以吗?如果不可以,这个接口是应该找百度还是找小米那边问呀,感谢耐心帮助。 |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/6 11:49:00 -- 没有办法从网站里读取。使用的是百度地图,就要使用百度接口开发 |
||||
-- 作者:yangwenghd -- 发布时间:2020/4/6 12:16:00 -- 谢谢,这个论坛有案例吗?,感觉玩起来有些吃力了,感谢 感谢 |
||||
-- 作者:yangwenghd -- 发布时间:2020/4/6 13:14:00 -- 老师,那能帮帮看看红色那段代码应该从那里得到呀,感谢 感谢 If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete\'由于加载完成事件会触发多次,分别为页面数据加载完成,DOM树加载完成.所以这里要判断一下.确保所有东西都加载完成再执行下面的操作 Select Case lb \'分别根据LB标志的值来执行不同的操作Case "使用小米账号登陆" If web.Document.Body.OuterHtml.Contains("https://account.xiaomi.com/pass/serviceLogin?callback=https%3A%2F%2Fi.mi.com%2Fsts%3Fsign%3DmF32YtfY7XReThOa0pZzXhZXJ0U%253D%26followup%3Dhttps%253A%252F%252Fi.mi.com%252F%26sid%3Di.mi.com&sid=i.mi.com&_locale=zh_CN&_snsNone=true") Then \'判断一下当前页面的是否包含这串字符串(用来判断是否已经处于登录状态) Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("a") \'获得当前页面的A标签HTML元素集合 For i As Integer = 0 To hec.Count-1 \'循环所有A标签 If hec(i).OuterHtml.Contains("javascript:Dv_Win_Modal.Open(\'login_win.asp?winaction=winlogin\',500,350);") Then \'判断该A标签是否包含这个字符串(如果包含说明该A标签是登录按钮) hec(i).InvokeMember("click") \'执行该标签的点击方法,从而实现点击登录按钮 lb="登录" \'把LB设置为"登录" 这样下一步就回执行Case "登录" 里面的代码 Exit For \'既然已经找到了这个A标签,没有必须继续循环了.退出循环 End If Next Else \'发现页面没有包含该字符串,说明没有登录按钮,处于已经登录状态 Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("a") \'获得当前页面的A标签HTML元素集合 For i As Integer = 0 To hec.Count-1 \'循环所有A标签 If hec(i).OuterHtml.Contains("logout.asp") Then \'判断这个A标签是否包含这个字符串,如果包含说明是退出登录按钮 hec(i).InvokeMember("click") \'执行该A标签的点击方法,从而实现点击退出按钮. lb="访问" \'\'把LB设置为"登录" 这样下一步就回执行Case "访问" 里面的代码 Exit For End If Next End If Case "登录" web.Document.Window.Frames(1).Document.GetElementById("username").SetAttribute("Value","13594605935") \'获得第二个FrAMES框架里面的ID为"username"的的HTML标签元素,并且将其Value设置为"test138" web.Document.Window.Frames(1).Document.GetElementById("pwd1").SetAttribute("Value","ab123456789") \'获得第二个FrAMES框架里面的ID为"pwd1"的的HTML标签元素,并且将其Value设置为"a110110" \'如果元素不是在Frame框架中,那么直接 web.Document.GetElementById 即可 \'如果元素没有ID怎么办? 按照上面的方法,获得指定类型的元素集合,然后循环判断是否包含该字段的方法来获得. \'下面的代码都大同小异,就不一一介绍了. Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.Window.Frames(1).Document.GetElementsByTagName("input") For i As Integer = 0 To hec.Count-1 If hec(i).OuterHtml.Contains("立即登录") Then hec(i).InvokeMember("click") lb="立即登录" Exit For End If Next Case "查找手机" web.Navigate("https://i.mi.com/mobile/find#/") lb="查找手机" End Select End If End If End Sub |
||||
-- 作者:yangwenghd -- 发布时间:2020/4/6 14:18:00 -- 1lt8YLZyu64T3fVumFlowQ6ivG9G10zO 老师 这是从API 复制过来的,这个有用吗? 感谢 感谢
[此贴子已经被作者于2020/4/6 14:18:10编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/4/6 14:42:00 -- 没有相关案例。网页分析这个我帮不了,请自行解决。 |