Python 通过比较html页面检查用户身份验证
我正在构建一个爬虫来执行许多网站的登录,我正在使用Python和Selenium来实现自动化 现在我需要了解我的登录事件是否成功。如果您只有一个网站,并且您知道HTML代码,即IDs属性、名称等,那么这个问题很容易解决。。但是这里我有很多网站,我需要找到一些启发性的方法,告诉我认证是否成功 到目前为止,我创建了以下Python方法:Python 通过比较html页面检查用户身份验证,python,html,selenium,web-scraping,web-crawler,Python,Html,Selenium,Web Scraping,Web Crawler,我正在构建一个爬虫来执行许多网站的登录,我正在使用Python和Selenium来实现自动化 现在我需要了解我的登录事件是否成功。如果您只有一个网站,并且您知道HTML代码,即IDs属性、名称等,那么这个问题很容易解决。。但是这里我有很多网站,我需要找到一些启发性的方法,告诉我认证是否成功 到目前为止,我创建了以下Python方法: def is_authenticated(self, before_event, after_event): auth_prob = 0. # prob
def is_authenticated(self, before_event, after_event):
auth_prob = 0. # probability of success
if self.username in after_event:
auth_prob += .3
if 'logout' in after_event.lower():
auth_prob += .3
return auth_prob
根据一些启发法,这给了我一个成功的概率,即:
那么,是否有一些度量告诉我两个字符串之间的“差异程度”?或者你能给我一些其他的启发吗?我自己还没有写过任何webscraper,但我遇到过一些线程,它们说基于
selenium webdriver
构建webscraper被认为是个坏主意。
话虽如此,您可以考虑在HTTP无状态时客户端服务器如何知道他们已完成(成功)身份验证—我可以想到
cookies
、sessions
和cache
,您可以访问所有这些解决方案。我认为您的解决方案是可用的最佳解决方案,除非您知道每个站点的哪个部分受到限制。如果您知道可以检查403拒绝访问
或重定向到登录页面。没有可以检查的统一模式,即使有,很多web应用程序也不会遵循官方模式
除了您正在做的事情之外,您还可以检查cookie或本地存储条目,这些条目建议您登录