Javascript Mechanize-Python问题

Javascript Mechanize-Python问题,javascript,ajax,post,mechanize-python,Javascript,Ajax,Post,Mechanize Python,我只是想探索机械化。我昨天才开始了解它 我要说的是,我这样做只是为了学习,而不是为了打破僵局。这只是为了学习。我只是选择了这个网站,因为它使用AJAX/Javascript(我不确定这个网站是否特别支持),否则我可以选择100个其他网站。所以,请帮助我学习这个。 所以,我刚看到这个网页-。如果您正确地注意到此网页,并且在单击“帐户”按钮后的下拉列表中单击“注册”链接,然后单击“使用电子邮件注册”链接,您将注意到该网站可能使用Javascript或AJAX(我不确定该网站使用哪一种)显示“使用电子

我只是想探索机械化。我昨天才开始了解它

我要说的是,我这样做只是为了学习,而不是为了打破僵局。这只是为了学习。我只是选择了这个网站,因为它使用AJAX/Javascript(我不确定这个网站是否特别支持),否则我可以选择100个其他网站。所以,请帮助我学习这个。

所以,我刚看到这个网页-。如果您正确地注意到此网页,并且在单击“帐户”按钮后的下拉列表中单击“注册”链接,然后单击“使用电子邮件注册”链接,您将注意到该网站可能使用Javascript或AJAX(我不确定该网站使用哪一种)显示“使用电子邮件注册”表单

我只是设法在“使用电子邮件表单注册”中输入了一些数据,并设法获得这些结果-:

1.然后我在“使用电子邮件注册”表单中,通过点击注册按钮,跟踪了网站发送的帖子请求。以下是与之相关的所有详细信息-:

1.a.这些是请求头-:

POST /signupAjax HTTP/1.1
Host: www.snapdeal.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: https://www.snapdeal.com/iframeLogin
Content-Length: 128
Cookie: u=143332124339995687; __pr.cd2=bvzs4642ht; st=utm_source%3Daffiliate%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dafts%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3D13521%7Caff_sid1%3Dnull%7Caff_sid2%3Dnull%7C; lt=utm_source%3DSEO%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dnull%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3Dnull%7Caff_sub%3Dnull%7Caff_sub2%3Dnull%7C; hpcl=616%7C53%7C288%7C257%7C175; hprv=2144302598-288%7C334547072-257%7C650370172861-175; _chartbeat2=BOCWJdBEo9iVCiO94S.1433321252304.1436675591755.0000101001010011; _SPP=SPP.1246344867578.179; _bs=cc770ead-fc2e-9f7e-32f4-87d8e2ee86b6; lang=en; s_pers=%20s_vnum%3D1438797571135%2526vn%253D4%7C1438797571135%3B%20gpv_pn%3DhomePage%253Anew%7C1436677385116%3B%20s_invisit%3Dtrue%7C1436677385119%3B; _cb_ls=1; track=BD%3Dhome; UP=0; JSESSIONID=4A6550703DD561263A67C9DD18D030FB; JSESSIONID=4A6550703DD561263A67C9DD18D030FB; s_sess=%20s_cc%3Dtrue%3B%20s_sq%3D%3B%20s_ppv%3D17%3B; bw=32.32; AWSELB=A9C537B30E076CDBCC1B9998259521F79795C353D1DF2A0435368C6E4768EB61F155147CEA5738409A47064137FA0D9CD3B8721BA4B9E0C8AE32031F93B321F69BF55EC0B0; vt=utm_source%3DDIRECT%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dnull%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3Dnull%7Caff_sub%3Dnull%7Caff_sub2%3Dnull%7C; IGFB={"user":{"name":"snapdeal","id":"560252645","count":"4.3k"}}; eid="ada@werwer.comlogoutSuccess=success"; _chartbeat5=
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
POST /omn/getOmnitureCode?eventType=RegisterLinkInHeader& HTTP/1.1
Host: www.snapdeal.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
Accept: text/html, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json; charset=utf-8
X-Requested-With: XMLHttpRequest
Referer: http://www.snapdeal.com/?logoutSuccess=success
Cookie: u=143332124339995687; __pr.cd2=bvzs4642ht; st=utm_source%3Daffiliate%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dafts%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3D13521%7Caff_sid1%3Dnull%7Caff_sid2%3Dnull%7C; lt=utm_source%3DSEO%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dnull%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3Dnull%7Caff_sub%3Dnull%7Caff_sub2%3Dnull%7C; hpcl=616%7C53%7C288%7C257%7C175; hprv=2144302598-288%7C334547072-257%7C650370172861-175; _chartbeat2=BOCWJdBEo9iVCiO94S.1433321252304.1436676251573.0000101001010011; _SPP=SPP.1246344867578.179; _bs=cc770ead-fc2e-9f7e-32f4-87d8e2ee86b6; lang=en; s_pers=%20s_vnum%3D1438797571135%2526vn%253D4%7C1438797571135%3B%20gpv_pn%3DhomePage%253Anew%7C1436678066075%3B%20s_invisit%3Dtrue%7C1436678066079%3B; _cb_ls=1; track=BD%3Dhome; UP=0; JSESSIONID=274401F99C991AA1EC8A0A62814589DF; JSESSIONID=274401F99C991AA1EC8A0A62814589DF; s_sess=%20s_cc%3Dtrue%3B%20s_sq%3D%3B%20s_ppv%3D17%3B; bw=32.32; AWSELB=A9C537B30E076CDBCC1B9998259521F79795C353D1DF2A0435368C6E4768EB61F155147CEA5738409A47064137FA0D9CD3B8721BA4B9E0C8AE32031F93B321F69BF55EC0B0; vt=utm_source%3DDIRECT%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dnull%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3Dnull%7Caff_sub%3Dnull%7Caff_sub2%3Dnull%7C; IGFB={"user":{"name":"snapdeal","id":"560252645","count":"4.3k"}}; eid=q@ewrwer.xom
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 0
1.b.这些是POST参数-:

CSRFToken=02325b364cc453ca796e76b365655b5ff020674e
ajax=true
j_confpassword=1234567
j_password=1234567
j_username=q@ewrwer.xom
https://www.snapdeal.com/signupAjax?CSRFToken=02325b364cc453ca796e76b365655b5ff020674e&ajax=true&j_confpassword=1234567&j_password=1234567&j_username=q%40ewrwer.xom
1.c.这是带有参数的位置-:

CSRFToken=02325b364cc453ca796e76b365655b5ff020674e
ajax=true
j_confpassword=1234567
j_password=1234567
j_username=q@ewrwer.xom
https://www.snapdeal.com/signupAjax?CSRFToken=02325b364cc453ca796e76b365655b5ff020674e&ajax=true&j_confpassword=1234567&j_password=1234567&j_username=q%40ewrwer.xom
2.我还设法找到了网站发送的显示注册表的请求。以下是与之相关的所有详细信息-:

2。a、 这是位置-:

http://www.snapdeal.com/omn/getOmnitureCode?eventType=RegisterLinkInHeader&
2.b.这些是请求头-:

POST /signupAjax HTTP/1.1
Host: www.snapdeal.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: https://www.snapdeal.com/iframeLogin
Content-Length: 128
Cookie: u=143332124339995687; __pr.cd2=bvzs4642ht; st=utm_source%3Daffiliate%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dafts%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3D13521%7Caff_sid1%3Dnull%7Caff_sid2%3Dnull%7C; lt=utm_source%3DSEO%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dnull%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3Dnull%7Caff_sub%3Dnull%7Caff_sub2%3Dnull%7C; hpcl=616%7C53%7C288%7C257%7C175; hprv=2144302598-288%7C334547072-257%7C650370172861-175; _chartbeat2=BOCWJdBEo9iVCiO94S.1433321252304.1436675591755.0000101001010011; _SPP=SPP.1246344867578.179; _bs=cc770ead-fc2e-9f7e-32f4-87d8e2ee86b6; lang=en; s_pers=%20s_vnum%3D1438797571135%2526vn%253D4%7C1438797571135%3B%20gpv_pn%3DhomePage%253Anew%7C1436677385116%3B%20s_invisit%3Dtrue%7C1436677385119%3B; _cb_ls=1; track=BD%3Dhome; UP=0; JSESSIONID=4A6550703DD561263A67C9DD18D030FB; JSESSIONID=4A6550703DD561263A67C9DD18D030FB; s_sess=%20s_cc%3Dtrue%3B%20s_sq%3D%3B%20s_ppv%3D17%3B; bw=32.32; AWSELB=A9C537B30E076CDBCC1B9998259521F79795C353D1DF2A0435368C6E4768EB61F155147CEA5738409A47064137FA0D9CD3B8721BA4B9E0C8AE32031F93B321F69BF55EC0B0; vt=utm_source%3DDIRECT%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dnull%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3Dnull%7Caff_sub%3Dnull%7Caff_sub2%3Dnull%7C; IGFB={"user":{"name":"snapdeal","id":"560252645","count":"4.3k"}}; eid="ada@werwer.comlogoutSuccess=success"; _chartbeat5=
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
POST /omn/getOmnitureCode?eventType=RegisterLinkInHeader& HTTP/1.1
Host: www.snapdeal.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
Accept: text/html, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json; charset=utf-8
X-Requested-With: XMLHttpRequest
Referer: http://www.snapdeal.com/?logoutSuccess=success
Cookie: u=143332124339995687; __pr.cd2=bvzs4642ht; st=utm_source%3Daffiliate%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dafts%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3D13521%7Caff_sid1%3Dnull%7Caff_sid2%3Dnull%7C; lt=utm_source%3DSEO%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dnull%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3Dnull%7Caff_sub%3Dnull%7Caff_sub2%3Dnull%7C; hpcl=616%7C53%7C288%7C257%7C175; hprv=2144302598-288%7C334547072-257%7C650370172861-175; _chartbeat2=BOCWJdBEo9iVCiO94S.1433321252304.1436676251573.0000101001010011; _SPP=SPP.1246344867578.179; _bs=cc770ead-fc2e-9f7e-32f4-87d8e2ee86b6; lang=en; s_pers=%20s_vnum%3D1438797571135%2526vn%253D4%7C1438797571135%3B%20gpv_pn%3DhomePage%253Anew%7C1436678066075%3B%20s_invisit%3Dtrue%7C1436678066079%3B; _cb_ls=1; track=BD%3Dhome; UP=0; JSESSIONID=274401F99C991AA1EC8A0A62814589DF; JSESSIONID=274401F99C991AA1EC8A0A62814589DF; s_sess=%20s_cc%3Dtrue%3B%20s_sq%3D%3B%20s_ppv%3D17%3B; bw=32.32; AWSELB=A9C537B30E076CDBCC1B9998259521F79795C353D1DF2A0435368C6E4768EB61F155147CEA5738409A47064137FA0D9CD3B8721BA4B9E0C8AE32031F93B321F69BF55EC0B0; vt=utm_source%3DDIRECT%7Cutm_content%3Dnull%7Cutm_medium%3Dnull%7Cutm_campaign%3Dnull%7Cref%3Dnull%7Cutm_term%3Dnull%7Caff_id%3Dnull%7Caff_sub%3Dnull%7Caff_sub2%3Dnull%7C; IGFB={"user":{"name":"snapdeal","id":"560252645","count":"4.3k"}}; eid=q@ewrwer.xom
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 0
此外,当我们点击“注册”弹出窗口中的“使用电子邮件注册”链接时,我设法检查网站是否发送了其他GET或POST请求

那么,我如何使用Mechanize访问网站上的“使用电子邮件注册”表单,或者如果还需要一些额外的库(我这么说,因为我昨天才开始使用Mechanize,所以我对它没有太多的了解)?所以,我完全开放给任何一个额外的图书馆你一起使用Mechanize

一旦我有权访问它,我可以简单地填写并提交它,对吗?这部分我说得对吗

请提供完整的代码和解释,因为如果你只是解释一下,这对我来说有点困难,因为我昨天才开始使用Mechanize。因此,最好是请提供完整的代码


正如我上面所说,这只是为了学习。请不要考虑我想做的任何违反安全的行为。我想学习如何在这样的网站上应用MECHANIZE(这是一个重点!)。

您应该首先检查网站的源代码,因为MECHANIZE不支持Javascript

使用Mechanize在Python中提交表单的示例:

import mechanize

EMAIL = "mymail@gmail.com"
PASS = "mypass"

def login(email,password):
    browser = mechanize.Browser()
    browser.set_handle_robots(False)
    browser.open('https://Login-SomeWebsite.com')
    browser.select_form(nr=0)
    browser.form["email"] = EMAIL
    browser.form["pass"] = PASS
    browser.submit()
    return browser

实际上,我设法检查了源代码。“使用电子邮件注册”表单(使用javascript显示)实际上也存在于源代码中,当时我试图在snapdeal主页的源代码中使用Firebug搜索与“使用电子邮件注册”表单相同的id(我没有单击帐户下拉列表中的注册链接)。因此,基本上,我要选择的表单在此阶段具有style=“display:none”,并且当我使用电子邮件链接(如问题中所述)单击Register时,显示更改为block,因此它主要使用javascript!因此,它基本上是一个带有style=“display:none”的表单。现在,如果需要,如何使用MECHANIZE和任何其他附加库选择该表单?