2016-07-25 45 views
0

我试图使用请求(python)从网站抓取一些页面,要求我登录。 我确实检查了登录页面以检查用户名和密码标题。但我发现这些字段的名称不被大多数网站使用的标准“用户名”,“密码”,你可以从下面的截图在aspx站点上使用请求的身份验证问题

password field

我用他们在我的Python脚本的方式看到,每次我得到'错误的语法'错误。即使sublimetext显示橙色的名称的一部分,你可以从下面的图片看到

从这我知道必须有一些名称的问题。但尝试摆​​脱$迹象并没有帮助。 即使login.aspx标头在google chrome可以在网络上注册之前也会消失。

该网站是www点bncnetwork点网

我会很高兴,如果有人可以帮助我弄清楚怎么处理这件事。

这里是code`import要求

import requests 

def get_project_page(seed_page): 

    username = "*******************" 
    password = "*******************" 

    bnc_login = dict(ctl00$MainContent$txtEmailID=username, ctl00$MainContent$txtPassword=password) 
    sess_req = requests.Session() 
    sess_req.get(seed_page) 
    sess_req.post(seed_page, data=bnc_login, headers={"Referer":"http://www.bncnetwork.net/MyBNC.aspx"}) 

page = sess_req.get(seed_page) 

return page.text` 
+1

请花时间将相关代码作为文本直接包含在您的问题中,而不是链接至屏幕截图。这会让别人更容易帮助你。 – nthall

+0

我已经完成了。我认为图像会显示在页面上。原来它没有。这就是为什么你投票给我失望,因为我在这么想? – Parousia

回答

1

您需要使用字符串键,如果你不这样做的$将导致语法错误:

data = {"ctl00$MainContent$txtPassword":password, "ctl00$MainContent$txtEmailID":email} 

有evenvalidation档案等..也填写,按照从这answer逻辑填写,所有的领域可以看到铬工具:

enter image description here

+0

感谢您的回复。我已经关注了这个链接,并且看看在这种情况下做了什么。我从那里处理另一个链接,处理aspx表单身份验证,并且我已经掌握了它。但问题是,在我的情况下,我不知道如何看FormData。几乎一旦我登录,google chrome网络监视器中的login.aspx表单就会消失。是否有解决此问题的方法?我试过搜索,但没有得到任何运气。 – Parousia

+1

你需要点击保存日志在网络选项卡 –

+0

谢谢你。现在我看到了一切......正如你所说 – Parousia