Skip to content

Commit

Permalink
web端基本可以用了
Browse files Browse the repository at this point in the history
  • Loading branch information
atupal committed Jun 14, 2013
1 parent 0e95ed9 commit 8a817c6
Showing 1 changed file with 49 additions and 3 deletions.
52 changes: 49 additions & 3 deletions dianzan/dianzan_py-dom-xpath.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def _login(self):
'hiddenPwd' ,
'login_url' ,
'go_url' ,
'verify' ,
#'verify' ,
'sidtype' ,
]
for name in names:
Expand All @@ -87,10 +87,10 @@ def _login(self):
r = self.session.get(img_url)
verify_img = Image.open(StringIO(r.content))
verify_img.show()
url = self._parse(None, '//*/@href', content = res.content)[1].content #post地址
import os
if os.environ['HOME'] == '/home/atupal':
if os.environ.get('HOME') == '/home/atupal':
data['verify'] = raw_input("verify:")
url = self._parse(None, '//*/@href', content = res.content)[1].content #post地址
res = self.session.post(url, data = data, headers = headers, allow_redirects = False)
url = res.headers['location']

Expand All @@ -99,9 +99,28 @@ def _login(self):

#验证码后第二次get
url = self._parse(url, '/wml/card/@ontimer')[0].content
else:
form = '<form action="/dianzan_verify" method="post">'
for i in data:
form += '<input type="hidden" name="%s" value="%s"></input>'%(i, data[i])

form += '<input type="hidden" name="url" value="%s"></input>'%url #带上url,下次浏览器post接收
form += '<input type="text" name="verify"></input>'
form += '<input type="submit" value="confirm"></input>'
form += '</form>'
self.verify = '''
<html>
<img src="%s"/>
%s
</html>
'''%(img_url, form)

return

else:
url = self._parse(url, '/wml/card/@ontimer')[0].content #再get一次就登陆成功了 ,以上和chrome浏览器都略有不用,没有302

self.verify = None
self.url = url

#print self.session.get(url).content
Expand All @@ -116,6 +135,9 @@ def dianzan(self, cnt = 5, op = '1'):
#content = self.session.get(self.url).content
#urls = re.findall(patter, content)

if self.verify:
return self.verify

feed_url = self.url
url = self._parse(feed_url, '/wml/card/@ontimer') #不知道为什么换了一个qq号的时候这里会多加一个跳转
if url:
Expand All @@ -133,8 +155,32 @@ def dianzan(self, cnt = 5, op = '1'):
for url in urls:
if url.content.find('feeds_friends') != -1 and url.content.find('dayval=1') != -1:
feed_url = url.content
return 'success'

class Dianzan_verify(Dianzan):
def __init__(self):
self.session = requests.Session()

def verify(self, data, headers):
print data

url = data.pop('url')
res = self.session.post(url, data = data, headers = headers, allow_redirects = False)
print '1' + str(res.content)
url = res.headers['location']

#验证码后第一次get
content = self.session.get(url).content
print '2' + content
url = self._parse(None, '/wml/card/@ontimer', content = content)[0].content

#验证码后第二次get
content = self.session.get(url).content
print '3' + content
url = self._parse(None, '/wml/card/@ontimer', content = content)[0].content

self.verify = None
self.url = url


if __name__ == "__main__":
Expand Down

0 comments on commit 8a817c6

Please sign in to comment.