【发布时间】:2017-01-25 17:15:32
【问题描述】:
在问this question 的人那里,我也遇到了同样的情况。我需要从保存为字符串的网站获取一些数据。
我的问题是,我需要从中保存数据的网站需要用户登录才能查看数据...
所以我的计划是让用户使用 WebBrowser 访问网站,然后登录,当用户在正确的页面上时,单击一个按钮,它将自动保存数据。
我想使用与我在开始时链接到的另一个问题的最佳答案中使用的方法类似的方法。
string data = doc.DocumentNode.SelectNodes("//*[@id=\"main\"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText;
我试着做这样的事情:
string data = webBrowser1.DocumentNode.SelectNodes("//*[@id=\"main\"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText;
但你不能做“webBrowser1.DocumentNode.SelectNodes”
我还看到另一个问题的答案说,他使用 HtmlAgilityPack,但我尝试下载它,但我不知道如何处理它..
C# 不是最好的,所以请不要评论太复杂的答案。或者至少尝试使其易于理解。
提前致谢:)
【问题讨论】:
-
您需要对登录页面进行 POST,读取响应以获取 cookie 信息,并将 cookie/登录信息包含在任何进一步的 GET 请求中。你试过了吗:stackoverflow.com/questions/24845573/…
-
这听起来太复杂了...
-
不是——一旦你完成了登录例程,它实际上只有两种方法。根据您要对信息执行的操作,有几种更高级别的解决方案。我记得不久前使用过 WebReplay - 不知道它们是否还在。
-
我在登录页面上找到了这段代码,我应该用它来做什么吗?我想我可以使用它,因为它是您输入用户名和密码的表单,并且它使用 POST 方法。
-
The code 1= 输入用户名的框,2= 输入密码的框。