我有一个Google App Engine应用程序 - http://mylovelyapp.appspot.com/ 它有一个页面 - mylovelypage
目前,页面就是这样 self.response.out.write('OK')
如果我在我的计算机上运行以下Python:
import urllib2
f = urllib2.urlopen("http://mylovelyapp.appspot.com/mylovelypage")
s = f.read()
print s
f.close()
Run Code Online (Sandbox Code Playgroud)
它打印"OK"
问题是如果我login:required在应用程序的yaml中添加到此页面
然后打印出Google帐户登录页面的HTML
我尝试过"正常"的身份验证方法.例如
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(None,
uri='http://mylovelyapp.appspot.com/mylovelypage',
user='billy.bob@gmail.com',
passwd='billybobspasswd')
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
Run Code Online (Sandbox Code Playgroud)
但它没有任何区别 - 我仍然得到登录页面的HTML.
我已经尝试了Google的ClientLogin auth API,但我无法让它工作.
h = httplib2.Http()
auth_uri = 'https://www.google.com/accounts/ClientLogin'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
myrequest = "Email=%s&Passwd=%s&service=ah&source=DALELANE-0.0" % ("billy.bob@gmail.com", "billybobspassword")
response, content = h.request(auth_uri, 'POST', body=myrequest, headers=headers)
if response['status'] == '200':
authtok = re.search('Auth=(\S*)', …Run Code Online (Sandbox Code Playgroud) 我在python中使用feedparser库从当地报纸上检索新闻(我的目的是在这个语料库上进行自然语言处理),并希望能够从RSS提要中检索许多过去的条目.
我不太熟悉RSS的技术问题,但我认为这应该是可能的(我可以看到,例如,当我移动滚动条时,Google Reader和Feedly可以"按需"执行此操作).
当我执行以下操作时:
import feedparser
url = 'http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml'
feed = feedparser.parse(url)
for post in feed.entries:
title = post.title
Run Code Online (Sandbox Code Playgroud)
我只收到了十几个条目.我在考虑数百个.如果可能的话,也许是上个月的所有参赛作品.是否可以仅使用feedparser执行此操作?
我打算从rss中获取仅包含新闻项的链接,并使用BeautifulSoup解析整个页面以获取我想要的文本.另一种解决方案是跟踪页面中所有本地链接的爬虫,以获取大量新闻,但我想暂时避免这样做.
-
出现的一个解决方案是使用Google Reader RSS缓存:
但要访问它,我必须登录Google阅读器.谁知道我是如何从python那样做的?(我真的不知道关于网络的事情,我通常只讨论数值计算).