使用警报窗口验证来刮取网站

时间:2015-09-04 15:10:47

标签: python web-scraping

我试图创建一个python应用程序,它会从我大学的LMS中删除一些数据来检查是否有新文件,如果是,则将它们下载到我的本地目录。

然而,使用我的登录名和密码来保护对页面的访问,但是该网站没有html登录表单,它只是一个警报窗口类型弹出窗口,我放了我的登录/密码(就像登录路由器时通常所做的登录一样),我不确定如何继续。

在尝试抓取之前,有人可以帮助我或者指点一些关于如何在这种类型的网站上验证连接的资源吗?无论是机械化还是其他。

感谢。

3 个答案:

答案 0 :(得分:2)

我认为这是一个HTTP基本授权。 尝试使用

登录

http(s)://(username):(password)@(url)在浏览器的地址栏中。

如果是这样的话, 在settings.py中,使用它来启用相应的中间件:

DOWNLOADER_MIDDLEWARE = [ 'scrapy.contrib.downloadermiddleware.httpauth.HttpAuthMiddleware']

在你的蜘蛛中使用这样的中间件:

class TheSpider(scrapy.Spider):

http_user = 'username'
http_pass = 'password'

def crawl(self, response):
    pass

# do teh magicz!

文档中的内容---有关详细信息,请参阅here

答案 1 :(得分:2)

对任何有兴趣的人:

我找到了使用beautifulsouprequestsrequests_ntlm库执行此操作的方法。

答案 2 :(得分:0)

Near发布的答案可能是最好的选择。我已经到处寻找了一段时间,却再也无法获得正常的“ http://user:pass@url”来为我工作。使用request_ntlm库是我能够在特定项目中使用的唯一功能,因此,如果您遇到HTTP身份验证问题,我强烈建议您检查一下。