﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-infinity-随笔分类-python</title><link>http://www.cppblog.com/infinity/category/14330.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 20 Jan 2011 17:31:43 GMT</lastBuildDate><pubDate>Thu, 20 Jan 2011 17:31:43 GMT</pubDate><ttl>60</ttl><item><title>python 模拟自动登陆校内，完成某些操作</title><link>http://www.cppblog.com/infinity/archive/2011/01/20/138945.html</link><dc:creator>infinity</dc:creator><author>infinity</author><pubDate>Wed, 19 Jan 2011 22:26:00 GMT</pubDate><guid>http://www.cppblog.com/infinity/archive/2011/01/20/138945.html</guid><wfw:comment>http://www.cppblog.com/infinity/comments/138945.html</wfw:comment><comments>http://www.cppblog.com/infinity/archive/2011/01/20/138945.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/infinity/comments/commentRss/138945.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/infinity/services/trackbacks/138945.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #008000;">#</span><span style="color: #008000;">encoding:utf-8</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #008000;"></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;urllib,urllib2,cookielib,re,time<br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;renren():<br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">__init__</span><span style="color: #000000;">(self,email,password):<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.url</span><span style="color: #000000;">=</span><span style="color: #800000;">'</span><span style="color: #800000;">http://www.renren.com/</span><span style="color: #800000;">'</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.email</span><span style="color: #000000;">=</span><span style="color: #000000;">email<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.password</span><span style="color: #000000;">=</span><span style="color: #000000;">password<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cookie</span><span style="color: #000000;">=</span><span style="color: #000000;">cookielib.LWPCookieJar()&nbsp;<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.opener</span><span style="color: #000000;">=</span><span style="color: #000000;">urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie))<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.friendIdList</span><span style="color: #000000;">=</span><span style="color: #000000;">[]<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;login(self):<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">self.url</span><span style="color: #000000;">+</span><span style="color: #800000;">'</span><span style="color: #800000;">PLogin.do/</span><span style="color: #800000;">'</span><span style="color: #000000;"><br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params</span><span style="color: #000000;">=</span><span style="color: #000000;">urllib.urlencode({</span><span style="color: #800000;">'</span><span style="color: #800000;">email</span><span style="color: #800000;">'</span><span style="color: #000000;">:self.email,</span><span style="color: #800000;">'</span><span style="color: #800000;">password</span><span style="color: #800000;">'</span><span style="color: #000000;">:self.password})<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response</span><span style="color: #000000;">=</span><span style="color: #000000;">self.opener.open(urllib2.Request(url,params))<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">self.url</span><span style="color: #000000;">+</span><span style="color: #800000;">'</span><span style="color: #800000;">home</span><span style="color: #800000;">'</span><span style="color: #000000;"><br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;response.geturl()</span><span style="color: #000000;">==</span><span style="color: #000000;">url:<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">'</span><span style="color: #800000;">Login&nbsp;Succesfully!</span><span style="color: #800000;">'</span><span style="color: #000000;"><br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.cookie.save(</span><span style="color: #800000;">'</span><span style="color: #800000;">xiaonei.coockie</span><span style="color: #800000;">'</span><span style="color: #000000;">)&nbsp;&nbsp;<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">:<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">'</span><span style="color: #800000;">Login&nbsp;Failed</span><span style="color: #800000;">'</span><span style="color: #000000;"><br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;changeState(self):<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">pass</span><span style="color: #000000;"><br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;getFriendList(self):<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #800000;">'</span><span style="color: #800000;">http://friend.renren.com/myfriendlistx.do</span><span style="color: #800000;">'</span><span style="color: #000000;"><br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response</span><span style="color: #000000;">=</span><span style="color: #000000;">self.opener.open(urllib2.Request(url))<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html</span><span style="color: #000000;">=</span><span style="color: #000000;">response.read()<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;friend</span><span style="color: #000000;">=</span><span style="color: #000000;">str(re.search(</span><span style="color: #800000;">'</span><span style="color: #800000;">friends=\[{.*}\]</span><span style="color: #800000;">'</span><span style="color: #000000;">,html).group())<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;friendId</span><span style="color: #000000;">=</span><span style="color: #000000;">re.findall(</span><span style="color: #800000;">'</span><span style="color: #800000;">"id":\d+</span><span style="color: #800000;">'</span><span style="color: #000000;">,friend)<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;id&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;friendId:<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.friendIdList.append(id.lstrip(</span><span style="color: #800000;">'</span><span style="color: #800000;">"id":</span><span style="color: #800000;">'</span><span style="color: #000000;">))<br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;browseFriend(self):<br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt</span><span style="color: #000000;">=</span><span style="color: #000000;">0<br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;friendId&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;self.friendIdList:<br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt</span><span style="color: #000000;">+=</span><span style="color: #000000;">1</span><span style="color: #000000;"><br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #800000;">'</span><span style="color: #800000;">http://www.renren.com/profile.do?id=</span><span style="color: #800000;">'</span><span style="color: #000000;">+</span><span style="color: #800000;">'</span><span style="color: #800000;">%s</span><span style="color: #800000;">'</span><span style="color: #000000;">%</span><span style="color: #000000;">(friendId)<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;urllib2.Request(url)<br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000;"></span><span style="color: #008000;">time.sleep(1)</span><span style="color: #008000;"></span><span style="color: #008080;"></span><span style="color: #008000;"></span><span style="color: #000000;"></span><span style="color: #000000;"></span><span style="color: #008080;"></span><span style="color: #000000;"></span><span style="color: #000000;"><br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">__name__</span><span style="color: #000000;">==</span><span style="color: #800000;">'</span><span style="color: #800000;">__main__</span><span style="color: #800000;">'</span><span style="color: #000000;">:<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;app</span><span style="color: #000000;">=</span><span style="color: #000000;">renren(</span><span style="color: #800000;">'</span><span style="color: #800000;">your email</span><span style="color: #800000;">'</span><span style="color: #000000;">,</span><span style="color: #800000;">'your password</span><span style="color: #800000;"></span><span style="color: #800000;">'</span><span style="color: #000000;">)<br></span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;app.login()<br></span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;app.changeState()<br></span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;app.getFriendList()<br></span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;app.browseFriend()<br></span><span style="color: #008080;">49</span><span style="color: #000000;"><br></span><span style="color: #008080;">50</span> <br><span style="color: #000000;"></span></div>
changeState 因为不知道怎么分析校内的表单提交方式，他的源码没法查看出表单时提交到哪里了，所以不好写，而类似getFriendList，访问好友啊这样的操作则是可以的，同样还可以写日志啊什么的。<br><br>有谁能告诉我怎么分析校内这种隐藏的表单<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="submit"</span><span style="color: #ff0000;">&nbsp;autocomplete</span><span style="color: #0000ff;">="false"</span><span style="color: #ff0000;">&nbsp;id</span><span style="color: #0000ff;">="publisher_submit"</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">="submit"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="发布"</span><span style="color: #ff0000;">&nbsp;stats</span><span style="color: #0000ff;">="Pub_Send"</span><span style="color: #0000ff;">&gt;</span></div>
是后台的js代码么<br><br>不过话说回来，python的urllib，urllib2什么的倒是很好用，做一些相关的应用都是很简单的<br><br><img src ="http://www.cppblog.com/infinity/aggbug/138945.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/infinity/" target="_blank">infinity</a> 2011-01-20 06:26 <a href="http://www.cppblog.com/infinity/archive/2011/01/20/138945.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>python写的短路计算软件</title><link>http://www.cppblog.com/infinity/archive/2011/01/04/137975.html</link><dc:creator>infinity</dc:creator><author>infinity</author><pubDate>Tue, 04 Jan 2011 14:09:00 GMT</pubDate><guid>http://www.cppblog.com/infinity/archive/2011/01/04/137975.html</guid><wfw:comment>http://www.cppblog.com/infinity/comments/137975.html</wfw:comment><comments>http://www.cppblog.com/infinity/archive/2011/01/04/137975.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/infinity/comments/commentRss/137975.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/infinity/services/trackbacks/137975.html</trackback:ping><description><![CDATA[<br>
<p>为了万恶的课设啊。写了个小软件。只可惜验收的老师对编程</p>
<p>一窍不通，还让我改这个改那个的，我特么做成UI了有那么容易改么。</p>
<p>在说了1个课设，1个晚上敷衍出来的东西能做那么完美么，全年级</p>
<p>99%的人都是命令行的，我容易么，手写的代码，手不用流汗的么，</p>
<p>还一直说上上届有谁谁做的我这样的，如何如何比我这牛逼，你有本</p>
<p>事做成。。大概意思就是做成那种基于图元类的拖放元件的那种。。</p>
<p>我笑了。直接跟那老实说，你懂个毛，然后各种对喷1v2，他们居然</p>
<p>没吧我赶出来。哎想想好牛逼啊。。</p>
<p>先上个截图</p>
<p><img alt=""  src="http://www.cppblog.com/images/cppblog_com/infinity/1.png" height="767" width="1023"><br></p>
<p>需要代码的同学密我</p>
<p><br></p>
<p>&nbsp;<img src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/moz-screenshot-4.png" alt=""></p><img src ="http://www.cppblog.com/infinity/aggbug/137975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/infinity/" target="_blank">infinity</a> 2011-01-04 22:09 <a href="http://www.cppblog.com/infinity/archive/2011/01/04/137975.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>python 2.5 中显示中文的办法 </title><link>http://www.cppblog.com/infinity/archive/2010/07/28/121423.html</link><dc:creator>infinity</dc:creator><author>infinity</author><pubDate>Tue, 27 Jul 2010 16:51:00 GMT</pubDate><guid>http://www.cppblog.com/infinity/archive/2010/07/28/121423.html</guid><wfw:comment>http://www.cppblog.com/infinity/comments/121423.html</wfw:comment><comments>http://www.cppblog.com/infinity/archive/2010/07/28/121423.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/infinity/comments/commentRss/121423.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/infinity/services/trackbacks/121423.html</trackback:ping><description><![CDATA[终于知道了<br><br>在代码的开头加上一句话<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#coding:gb18030</span></div>
这样就ok了 就是utf-8编码了<br><br><img src ="http://www.cppblog.com/infinity/aggbug/121423.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/infinity/" target="_blank">infinity</a> 2010-07-28 00:51 <a href="http://www.cppblog.com/infinity/archive/2010/07/28/121423.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pywin32的应用</title><link>http://www.cppblog.com/infinity/archive/2010/07/27/121382.html</link><dc:creator>infinity</dc:creator><author>infinity</author><pubDate>Tue, 27 Jul 2010 02:51:00 GMT</pubDate><guid>http://www.cppblog.com/infinity/archive/2010/07/27/121382.html</guid><wfw:comment>http://www.cppblog.com/infinity/comments/121382.html</wfw:comment><comments>http://www.cppblog.com/infinity/archive/2010/07/27/121382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/infinity/comments/commentRss/121382.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/infinity/services/trackbacks/121382.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/infinity/archive/2010/07/27/121382.html'>阅读全文</a><img src ="http://www.cppblog.com/infinity/aggbug/121382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/infinity/" target="_blank">infinity</a> 2010-07-27 10:51 <a href="http://www.cppblog.com/infinity/archive/2010/07/27/121382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>