2015-09-04 42 views
1

我想要制作一个python应用程序,可以从我的大学的LMS中删除一些数据,以检查是否有新文件,如果是,那么将它们下载到我的本地目录。用警报窗口认证刮一个网站

但是,使用我的登录名和密码来保护对页面的访问,但是没有该网站的html登录表单这样的事情,它只是一个警报窗口类型的弹出窗口,我把我的登录名/密码您通常在登录路由器时执行此操作),并且我不确定如何继续操作。

有人可以帮我解决问题吗?或者指点我一些资源,如何在尝试刮擦之前验证此类网站的连接?无论是机械还是其他。

谢谢。

+0

该警报窗口发布到某个东西。你的网络标签告诉你什么? – IanAuld

+0

这就是HTTP基本身份验证。 – SLaks

+0

我试图寻找到网络选项卡,但我是这个初学者,所以我不知道如果我看上去是否正确。我在列表中找不到与auth相关的任何内容。你能帮我找出想找什么吗?谢谢。 – Near

回答

0

我认为这是一个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

+0

我在浏览器中试过,它只是说不可用。如果我用curl试过,我可以看到授权标题,但响应是401. – Near

+0

HTTP/1.1 401未授权 <服务器:Microsoft-IIS/7.5 Near

+0

'401'装置“未经授权”。 – esfy

1

任何有兴趣:

我找到了一种方法来做到这一点使用beautifulsouprequestsrequests_ntlm库。

+0

这应该是正确的答案。我花了好几天的时间试图弄清楚这一点。这个软件包很棒,完美的解决了我的问题!!!!!!! –