forked from lx307697527/dung_beetle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
login_douban1.py
63 lines (55 loc) · 2.22 KB
/
login_douban1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/env python
#使用urllib, urllib2模拟登录豆瓣,获取豆邮列表邮
import urllib
import urllib2
import cookielib
import random
import re
from bs4 import BeautifulSoup
class DB(object):
def __init__(self, email, passwd):
self.url = "http://www.douban.com/accounts/login"
self.post = {
'form_email':email,
'form_password':passwd,
'source':'index_nav'
}
cookie = cookielib.CookieJar()
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
self.response = self.opener.open(self.url, urllib.urlencode(self.post))
def login(self):
if self.response.geturl() == self.url:
print 'logining...'
html = self.response.read()
reg = r'<img id="captcha_image" src="(.*?)" alt="captcha" class="captcha_image"/>'
imglist = re.findall(reg, html)
urllib.urlretrieve(imglist[0], '%d.jpg' % random.randint(1,100))
captcha = raw_input('captcha is: ')
regid = r'<input type="hidden" name="captcha-id" value="(.*?)"/>'
ids = re.findall(regid, html)
self.post["captcha-solution"] = captcha
self.post["captcha-id"] = ids[0]
self.post["user_login"] = "登录"
self.post["redir"] = 'http://www.douban.com/doumail/'
if self.response.geturl() == "http://www.douban.com/doumail/":
print 'login success !'
soup = BeautifulSoup(self.response.read())
tag = soup.find_all('span', attrs={'class':'from'})
tag2 = soup.find_all('a', attrs={'class':'url'})
a = []
for x in tag:
a.append(x.get_text())
b = []
for y in tag2:
b.append(y.get_text())
def split(num):
print a[num] + ' ' + b[num]
print
print '-'*30, '豆瓣豆邮', '-'*30
for x in range(len(a)):
split(x)
print '-'*80
email = raw_input('Your email: ')
passwd = raw_input('Your passwd: ')
my = DB(email, passwd)
my.login()