Python 通过比较html页面检查用户身份验证

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

我正在构建一个爬虫来执行许多网站的登录,我正在使用Python和Selenium来实现自动化

现在我需要了解我的登录事件是否成功。如果您只有一个网站,并且您知道HTML代码,即IDs属性、名称等,那么这个问题很容易解决。。但是这里我有很多网站,我需要找到一些启发性的方法,告诉我认证是否成功

到目前为止,我创建了以下Python方法:

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
根据一些启发法,这给了我一个成功的概率,即:

  • 事件发生后,我的用户名是否在HTML代码中
  • 是否包含“注销”
  • 这似乎奏效了。但是我想通过比较事件后的两个html页面,即事件前和事件后,使事情变得更加健壮


    那么,是否有一些度量告诉我两个字符串之间的“差异程度”?或者你能给我一些其他的启发吗?

    我自己还没有写过任何webscraper,但我遇到过一些线程,它们说基于
    selenium webdriver
    构建webscraper被认为是个坏主意。
    话虽如此,您可以考虑在HTTP无状态时客户端服务器如何知道他们已完成(成功)身份验证—我可以想到
    cookies
    sessions
    cache
    ,您可以访问所有这些解决方案。

    我认为您的解决方案是可用的最佳解决方案,除非您知道每个站点的哪个部分受到限制。如果您知道可以检查
    403拒绝访问
    或重定向到登录页面。没有可以检查的统一模式,即使有,很多web应用程序也不会遵循官方模式

    除了您正在做的事情之外,您还可以检查cookie或本地存储条目,这些条目建议您登录