csatblogspotdotcom

Saturday, March 5, 2016

使用Python urllib2进行http协议的post与get

Python的urllib2(类似urllib、httplib,还有非官方的requests库)可与http server交互,可以模拟http client,向server提交数据可使用两种方式:post和get,其中get方式是在url里面加入参数,参数前面使用问号(?)作为分隔符,参数之间使用与符号(&)作为分隔符,参数名与参数值之间使用等号(=)作为分隔符;另一种方式post的参数不在url里面,不会被显示出来,而是单独的参数。 这里面可能会遇到一个问题,使用post方式访问,如果被访问页面进行了重定向的时候,Python会自动将post方式更改为get方式,解决方法是指定method为post(例如:method = "POST",request.get_method = lambda: method),或者直接向重定向后的页面提交数据(例如http://myserver/post_service被定向到http://myserver/post_service/,后者多了一个斜线“/”那么直接访问后者) 另外,urllib2等库并不支持JavaScript,如需支持JavaScript则可使用Selenium 参考: https://docs.python.org/2/howto/urllib2.html http://bugs.python.org/issue1401 http://stackoverflow.com/questions/6348499/making-a-post-call-instead-of-get-using-urllib2 http://stackoverflow.com/questions/3238925/python-urllib-urllib2-post https://docs.python.org/2/library/urllib2.html http://stackoverflow.com/questions/8960288/get-page-generated-with-javascript-in-python http://stackoverflow.com/questions/20622870/using-urllib2-to-execute-url-and-return-rendered-html-output-not-the-html-itsel

Labels: , , ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home