
Android 和 Maemo 的主要吸引力,可能都在于软件的自由度。但是对于我们这些自由软件用户和开发者,更应该支持哪个呢?现实中的软件自由度有多个层面的含义。尽管理论上只需要一个合适的授权方式,但我们需要考虑很多的东西,例如最简单的就是给终端使用者管理员级别的权限。以下四点在我看来至关重要: 1 用户的访问权限 2 协作和交互的程度 3 闭源软件的存在 4 实际应用中的自由度用户访问权限对于手机来说,完全控制你自己的设备从来都不是理所当然的事情。现在市面上的很多平台确实允许用户运行他们的自制程序,但往往针对恶意软件的安全策略也会影响自制软件。 更让人困惑的是,由于传统手机 *** 作系统功能先天不足,这样的能力是否有用还需要商酌(指运行自制软件)。目前更加强大的硬件使得手机可以在不影响续航能力的前提下运行Linux,但作为用户应当有更高的期待。Android 和 Maemo 都可以宣称自己的核心组件是免费的,但是到目前为止我们只讨论用户权限。对于Android 阵营来说很遗憾,目前没有厂商在自家手机里主动提供获取 Root 权限的方式。因此,尽管不像 iPhone 越狱那么困难,Android 的用户仍然需要八仙过海、各显神通来获取系统的最高权限。而直接由 Nokia 研发的 Maemo 则会在系统里直接内置获取 Root 权限的方式,用户只需要从官方软件源安装一个包,这个包的作用仅仅是让用户理解开启 Root 权限的危险性。(注:稍微解释下几个名词,所谓的 Root 权限就是管理员权限,事实上用这个权限运行应用软件非常危险,因为它完全不受系统安全策略的影响,你很可能在不知不觉中干掉自己的系统,软件源是源自 Debian 的说法,你可以把它理解为更加强大的 App store。)如果在 Android 设备上也可以很容易地通过非官方途径获得 Root 权限的话,会出现怎样的问题?以下列举几个:初学者压根就不会动这种念头。专业知识不应该成为自由之路上的绊脚石,谁说初学者一定不会用到 Root 权限? 高级用户不该为了获取 Root 权限而被迫破解手机。有些人破解完了以后会有负罪感,但事实上他们只不过是买了一个倒霉的残疾产品。用户不应该被迫和 *** 作系统斗争,在破解手机会让他们失去厂商的安全升级。一个需要破解的 *** 作系统是劣质产品,即便它的用户可以通过非官方的手段获得完全控制设备的自由。 软件市场将会被分为已破解和未破解两类。破解手机的用户并不一定能够获得未来的产品更新和服务。 胜者: 跑在 Nokia 设备上的 Maemo。 协作和交互我们可以开发最迷人的文字编辑工具,但是如果这个软件只能运行在任天堂模拟器上的话,那这东西就几乎没有任何用处。这不是这个编辑器的错误,我们也不会得到更多的协助,在这种情况下,作者都不一定会有热情来推销这么个软件。这就是为什么有时候不能仅仅用 GPL 发布完一个软件就完事了。 在这里我们不准备讨论协作对个人的意义,但我们仍然能看到哪个平台在这方面处于领先地位。 Maemo 是 Debian GNU/Linux 的一个简化版本,它拥有一个在标准 X11 服务上运行的为移动设备优化过的窗口管理器。这意味着 Maemo 的代码实际上可以非常容易地与任何 Unix 类型的自由 *** 作系统共享。(注:这点非常重要,如果 Nokia 能够提供方便易用的转换工具的话,Maemo 可以轻松拥有数万桌面级软件的庞大软件阵容。)这里说一个实际上的例子,Nokia 为了方便创建对移动设备友好的软件而开发的 Hildon 工具已经被 Gnome 接受,并被用在 Ubuntu 移动互联网设备专用版本的开发上。 2010-1-11 00:52 回复 中国福特宝 2楼Android 运行在 Linux 内核上,但是它的应用程序事实上是跑在 Google 自己开发的 Java 虚拟机上。尽管 Google 已经发布了原生的 SDK,但很遗憾,这个 SDK 只允许部分对性能要求极高的软件运行在原生态上。总而言之, Android 根本就不像个跑 Linux 内核的系统,开发者事实上也只能使用非标准的 Java 进行开发。有迹象表明 Google 这么做是刻意为之,目的就是限制软件的能力而迫使用户使
这个网页取cookie()命令 是取得临时文件的cookie,有时是无效的,你用 网页_访问_对象()试试,你可以模拟登录模式取到相应的cookie,如果实在不行,你可以网截拦截cookie。
public void saveCookie(>}
这是一个保存cookie的方法 但我实在没看懂你想做什么功能 能详细说一下吗
有些网站需要登录后才能爬取所需要的信息,此时可以设计爬虫进行模拟登录,原理是利用浏览器cookie。
一、浏览器访问服务器的过程:
(1)浏览器(客户端)向Web服务器发出一个>
二、利用Fiddler查看浏览器行为信息:
>
(1)起始行:包括请求方法、请求的资源、>
这里GET请求没有消息主体,因此消息头后的空白行中没有其他数据。
(2)消息头:包含各种属性
(3)消息头结束后的空白行
(4)可选的消息体:包含数据
>
(1)起始行:包括>
(2)消息头:包含各种属性
(3)消息体:包含数据
从上面可见,cookie在>
三、什么是cookie:
当用户通过浏览器首次访问一个域名时,访问的Web服务器会给客户端发送数据,以保持Web服务器与客户端之间的状态,这些数据就是Cookie。
它是站点创建的,为了辨别用户身份而储存在用户本地终端上的数据,其中的信息一般都是经过加密的,存在缓存或硬盘中,在硬盘中是一些小文本文件。
当访问该网站时,就会读取对应网站的Cookie信息。
作用:记录不同用户的访问状态。
四、 *** 作过程:
在知乎登录界面输入用户名和密码,然后登录。
利用Fiddler来查看这期间浏览器和知乎服务器之间的信息交互。
(1)浏览器给服务器发送了一个POST,携带帐号和密码等信息;
从起始行可见,POST是发送给>
可以发现,信息里不仅有帐号(email)和密码(password),其实还有_xsrf(具体作用往后看)和remember_me(登录界面的“记住我”)两个值。
那么,在python爬虫中将这些信息同样发送,就可以模拟登录。
在发送的信息里出现了一个项:_xsrf,值为2fc4ab0f0f144c2e478c436fe3160443
这个项其实是在访问知乎登录网页>
所以需要先从登录网址>
并连同帐号、密码等信息再POST到真正接收请求的>
(2)获取_xsrf的值:
爬取登录网址>
(3)发送请求:
xsrf = 获取的_xsrf的值
data = {"email":"xxx","password":"xxx","_xsrf":xsrf}
login = spost(loginURL, data = data, headers = headers)
loginURL:是真正POST到的网址,不一定等同于登录页面的网址;
(4)爬取登录后的网页:
response = sget(getURL, cookies = logincookies, headers = headers)
getURL:要爬取的登陆后的网页;
logincookies:登陆时获取的cookie信息,存储在login中。
(5)输出内容:
print responsecontent
五、具体代码:
[python] view plain copy
# -- coding:utf-8 --
# author:Simon
# updatetime:2016年3月17日 17:35:35
# 功能:爬虫之模拟登录,urllib和requests都用了
import urllib
import urllib2
import requests
import re
headers = {'User-Agent':'Mozilla/50 (Windows NT 62) AppleWebKit/53511 (KHTML, like Gecko) Chrome/17096312 Safari/53511'}
def get_xsrf():
firstURL = ">
request = urllib2Request(firstURL,headers = headers)
response = urllib2urlopen(request)
content = responseread()
pattern = recompile(r'name="_xsrf" value="()"/>',reS)
_xsrf = refindall(pattern,content)
return _xsrf[0]
def login(par1):
s = requestssession()
afterURL = ">
loginURL = ">
login = spost(loginURL, data = par1, headers = headers) # 发送登录信息,返回响应信息(包含cookie)
response = sget(afterURL, cookies = logincookies, headers = headers) # 获得登陆后的响应信息,使用之前的cookie
return responsecontent
xsrf = get_xsrf()
print "_xsrf的值是:" + xsrf
data = {"email":"xxx","password":"xxx","_xsrf":xsrf}
print login(data)
六、补充:
用知乎网做完试验,发现这里好像并不需要发送_xsrf这个值。
不过有的网站在登陆时确实需要发送类似这样的一个值,可以用上述方法。
以上就是关于java 用httpurlconnection模拟登陆成功后,怎么得到cookies全部的内容,包括:java 用httpurlconnection模拟登陆成功后,怎么得到cookies、易语言POST登陆的时候获取cookie的问题。、java爬虫模拟登陆后怎么把请求的url的cookie保存下来,并添加到待爬取的url上在线等!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)