使用Python和urllib2删除ASP.NET

使用Python和urllib2删除ASP.NET,asp.net,python,asp.net-ajax,screen-scraping,urllib2,Asp.net,Python,Asp.net Ajax,Screen Scraping,Urllib2,我一直在尝试(我可能会补充说,没有成功)使用Python和urllib/urllib2来抓取使用Microsoft堆栈(ASP.NET、C#、IIS)创建的网站。我还使用cookielib来管理cookies。在花了很长时间在Chrome上分析网站并检查标题后,我一直无法想出一个有效的登录解决方案。目前,为了让它在最基本的层次上工作,我已经用所有适当的表单数据(甚至视图状态等)硬编码了编码的URL字符串。我还传递了有效的标题 我目前收到的答复是: 29 | pageRedirect | |/?a

我一直在尝试(我可能会补充说,没有成功)使用Python和urllib/urllib2来抓取使用Microsoft堆栈(ASP.NET、C#、IIS)创建的网站。我还使用cookielib来管理cookies。在花了很长时间在Chrome上分析网站并检查标题后,我一直无法想出一个有效的登录解决方案。目前,为了让它在最基本的层次上工作,我已经用所有适当的表单数据(甚至视图状态等)硬编码了编码的URL字符串。我还传递了有效的标题

我目前收到的答复是:

29 | pageRedirect | |/?aspxerrorpath=/default.aspx|

我不知道如何解释上述内容。此外,我还广泛地研究了用于处理登录字段的客户端代码

工作原理如下:输入用户名/密码,然后点击“登录”按钮。按下Enter键也会模拟此按钮按下。输入字段不在表单中。相反,在登录按钮上有几个onClick事件(大多数只是为了美观),但有一个问题处理验证。在发送到服务器端之前,它会进行一些基本检查。基于web资源,它显然在使用.NETAjax

当您正常登录本网站时,您会要求domian发布您的用户名和密码等表单数据。然后,会有某种URL重写或重定向,将您带到URL.com/twitter的内容页面。当尝试直接访问url.com/twitter时,它会将您重定向到主页

我应该注意到,我已经决定不使用有问题的URL。我没有做任何恶意的事情,只是每隔一段合理的时间自动执行一次非常单调的检查(我熟悉富有同情心的屏幕抓取)。然而,如果我的StackOverflow帐户不能让域所有者满意,那么将它与该帐户关联起来就很简单了


我的问题是:我过去能够成功登录并自动化服务,但没有一项是基于.NET的。我应该做什么不同的事情,或者我遗漏了什么吗?

在抓取web应用程序时,我使用以下两种方法之一:

1) 线鲨。。。或者

2) 日志代理服务器(记录头和负载)

然后,我将实际应用程序的功能(在本例中,您的浏览器如何与站点交互)与scraper的日志进行比较。解决这些差异将为您带来一个有效的解决方案。

对于将来可能处于类似困境的其他人:


我只想指出,我已经在Chrome中使用Greasemonkey用户脚本成功地完成了所有的抓取和自动化工作。我发现它比Python+urllib2容易得多(至少在这个特殊情况下)。用户脚本是用100%Javascript编写的。

是否始终可以通过urllib等HTTP库进行自动登录?换句话说,是否存在这样的情况:web应用程序的编码方式阻止了无法绕过的自动登录?我在认证后试图抓取的网站已经采取了广泛的措施来阻止机器人(但在这种情况下,我认为“机器人”会以重复的垃圾邮件行为的形式对网站造成损害)。我打算将该网站作为一个过滤器,并在继续操作之前寻找某些标准。比如说。。。1检查/分钟。只要您可以自己写入/覆盖所有标题,浏览器就不会做任何您无法模仿的事情。