我需要自动化涉及使用登录表单的网站的流程.我需要在登录页面后面的页面中捕获一些数据.
我知道如何屏幕抓取普通网页,而不是安全网站背后的网页.
可以使用.NET WebClient类完成吗?
我将如何自动登录?
我如何继续登录其他页面?
Hafthor.. 9
一种方法是通过自动化浏览器 - 你提到了WebClient,所以我猜你可能指的是.NET中的WebClient.
两个要点:
与WebClient相关的https没有什么特别之处 - 它只是起作用
Cookie通常用于进行身份验证 - 您需要捕获并重放它们
这是我要遵循的步骤:
获取登录表单,捕获响应中的cookie.
使用Xpath和HtmlAgilityPack,找到"input type = hidden"字段名称和值.
使用用户名,密码和请求正文中的隐藏字段值POST登录表单的操作.在请求标头中包含cookie.再次,在响应中捕获cookie.
再次使用请求标头中的cookie获取所需的页面.
在第2步,我提到了一种有点复杂的自动登录方法.通常,您可以使用用户名和密码直接发布到已知的登录表单操作,而无需获取初始表单或中继隐藏字段.某些网站在其表单上进行了表单验证(与字段验证不同),这使得此方法无效.
HtmlAgilityPack是一个.NET库,允许您将格式错误的HTML转换为XmlDocument,以便您可以对其进行XPath.非常有用.
最后,您可能会遇到这样一种情况,即表单依赖客户端脚本在提交之前更改表单值.您可能需要模拟此行为.
使用工具查看此类工作的http流量非常有用 - 我推荐ieHttpHeaders,Fiddler或FireBug(网络标签).
一种方法是通过自动化浏览器 - 你提到了WebClient,所以我猜你可能指的是.NET中的WebClient.
两个要点:
与WebClient相关的https没有什么特别之处 - 它只是起作用
Cookie通常用于进行身份验证 - 您需要捕获并重放它们
这是我要遵循的步骤:
获取登录表单,捕获响应中的cookie.
使用Xpath和HtmlAgilityPack,找到"input type = hidden"字段名称和值.
使用用户名,密码和请求正文中的隐藏字段值POST登录表单的操作.在请求标头中包含cookie.再次,在响应中捕获cookie.
再次使用请求标头中的cookie获取所需的页面.
在第2步,我提到了一种有点复杂的自动登录方法.通常,您可以使用用户名和密码直接发布到已知的登录表单操作,而无需获取初始表单或中继隐藏字段.某些网站在其表单上进行了表单验证(与字段验证不同),这使得此方法无效.
HtmlAgilityPack是一个.NET库,允许您将格式错误的HTML转换为XmlDocument,以便您可以对其进行XPath.非常有用.
最后,您可能会遇到这样一种情况,即表单依赖客户端脚本在提交之前更改表单值.您可能需要模拟此行为.
使用工具查看此类工作的http流量非常有用 - 我推荐ieHttpHeaders,Fiddler或FireBug(网络标签).