我正在尝试用Python创建一个程序来登录gmail并阅读收件箱页面。这是我尝试使用Selenium和urllib2(我是这些新手):
from requests import session
from selenium import webdriver
import getpass
import urllib2
def gmail_login(username, passw) :
with session() as c :
webpage = r'https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1<mpl=default<mplcache=2&emr=1&osid=1#identifier'
driver = webdriver.Chrome('C:\Users\chromedriver_win32\chromedriver.exe')
driver.get(webpage)
driver.implicitly_wait(10)
driver.find_element_by_name('Email').send_keys(username)
driver.find_element_by_name('signIn').click() # Click 'Next' button after entry of email id.
driver.find_element_by_id('Passwd').send_keys(passw)
driver.find_element_by_id('signIn').click() # Click 'Sign In' button after entry of password.
url = driver.current_url
readPage(url)
def readPage(url):
print url
fName = "gmail_file.html"
response = urllib2.urlopen(url)
html = response.read()
f = open(fName,"w")
f.write(html)
f.close()
gmail_login('username', 'password')
我的登录部分正确,但我无法阅读收件箱页面。 在我的代码中,我基本上是使用url重新打开收件箱页面,然后将其读取并保存在html文件中。但在我的html文件中,我得到的只是登录页面!我猜测不允许使用其网址直接打开收件箱页面并受到保护。
所以我正在寻找一种方法来阅读网页的内容(任何,不仅仅是gmail),其目的不需要网址。 (我知道阅读网页的唯一方法是使用需要url的urlopen()。)是否有用于此目的的函数或库?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用Charlie Guo's gmail package。安装完成后,您可以像这样使用它:
import gmail
g = gmail.login("devansh_sharma@gmail.com", "password123")
emails = g.inbox().mail(unread=True)
for email in emails:
email.fetch()
header_from = email.headers['From']
subject = email.headers['Subject']
body = email.body
[... do something cool with your gmail...]
这比屏幕抓取更可靠,更简单。