当前位置: 首页 > news >正文

娱乐城网站开发威海企业做网站

娱乐城网站开发,威海企业做网站,wordpress在线制作网页,个体商户建自己的网站做销售用python实现模拟登录人人网 字数4068 阅读1762 评论19 喜欢46我决定从头说起。懂的人可以快速略过前面理论看最后几张图。 web基础知识 从OSI参考模型#xff08;从低到高#xff1a;物理层#xff0c;数据链路层#xff0c;网络层#xff0c;传输层#xff0c;会话层从低到高物理层数据链路层网络层传输层会话层表示层应用层来说我们的互联网属于应用层。从TCP/IP参考模型从低到高物理层数据链路层网络层传输层应用层来说也同样如此。 互联网上有各种各样的资源包括文本、图片、音频、视频…… 通常所见的Web模型需要包括两部分客户端服务器。个人电脑上的浏览器就是一种客户端而保存我们输入的网址所有相关资源的就是服务器。 客户端通过URLUniform Resource Locator统一资源定位符来链接至服务器。 http://www.abcd.com/page.html 通常一个URL如上所示http是协议名http、ftp、telnet……www.abcd.com是页面所在机器的DNS名page.html是页面文件的名字。 内部细节不表总之我们在浏览器中输入url浏览器通过url与服务器经过复杂沟通协调建立联系TCP、UDP……将数据从服务器发至浏览器我们能够通过浏览器看到最终拿到的资源。 通常我们看到的web页面是使用HTML的语言来编写的。上面除了有之前提到的各种资源外还有超链接。 Cookie 新的需求出现了服务器需要能够认识客户端比如客户需要登录、需要身份识别、需要权限识别、需要依据不同客户加载不同内容…… 怎么办当客户端向服务器端请求一个web页面时服务器端除了提供此页面外还会提供一些附加信息其中包括cookie客户端会将cookie存储在客户机器的本地磁盘上。 当浏览器向该服务器端发起请求时浏览器会检查它的cookie确定所请求的目标域是否有存cookie如果有会将该cookie包含到请求消息request中。服务器得到cookie后就可以进行识别操作了。 一个cookie可以保函至多5个域Domain、Path、Content、Expires、Secure。 Domain指示cookie来自什么地方即域名。每个域至多在客户端存储20个cookie。Path服务器目录结构中的一个路径表示服务器文件树的哪些部分可能会用到该cookie。通常是/表示整个文件树。Content采用name value的形式即键值对熟悉python的话可以得知Dictionary使用相同结构。这是cookie内容存放之处。Expires过期时间。如果此域不存在的话浏览器在退出时会将cookie丢弃。否则会一直在客户端保存到过期为止。所以如果服务器想将客户端的cookie删除只需要再将它发送一次并且选择一个已经过去的时间作为Expires。Secure指示浏览器只向安全的服务器https等等才返回该cookie。到这里我们知道了后续每次连接人人网的时候都需要一个正确的cookie来表明我们的身份。 静态和动态Web文档 按照之前提到的模型客户端向服务器端发出Request服务器端返回Response一次完成不管传输的是HTML格式、还是XML格式、还是……这种都算是静态Web文档过程非常简单。 然而社会在进步需求在增加。越来越多的内容需要根据实际情况来生产并且内容的生成既可以发生在服务器端也可发生在客户端。 服务器端动态Web页面用户可以在客户端提交表单Form给服务器端服务器端需要根据表单内容来返回正确的Web页面。有两种处理表单或类似Request的方法。传统方法是CGI系统允许服务器与后端程序及脚本通信通常用Perl或Python编写。简单的模型是用户浏览器服务器CGI脚本磁盘上的数据库以上几个呈链型。另外一种方法是在HTML页面中嵌入少量脚本让服务器来执行这些脚本以便生成最终发送给客户的页面。通常用PHP、JSP、ASP等。简单的模型是用户浏览器服务器而PHP则作为一个模块存在于服务器内。 客户端动态Web页面然而CGI、PHP、JSP、ASP这种在部署在服务器端的脚本并不能够对用户的鼠标移动事件进行响应或者直接与用户交互。现在经常会谈到“互联网服务交互界面要友好”想要达成这一目的需要在客户端能够实时依据用户的动作来处理现在最流行的应该是Javascript了吧。简单的模型依旧是用户浏览器服务器只不过在浏览器多了一个Javascript的模块。 这两种动态web语言并没有谁优谁劣的区分只不过用途不同罢了。前者就是我们常说的后端后者就是我们常说的前端。 HTTP——超文本传输协议 前面提到URL的第一个部分是协议名我们用的比较多的是http协议。 Request 客户端到服务器的消息被称作请求Request需要包括应用于资源的方法、资源的标识符和协议的版本号。 HTTP的Request包括几种访问方法GET/HEAD/PUT/POST/DELETE/TRACE/CONNECT/OPTIONS。 GET方法请求最常用直接以链接形式访问即链接中包含了所有参数。速度快内容量小不安全。 POST方法经常和GET进行比较它是向服务器发送请求要求服务器接受位于请求后的实体依据实体内容处理后返回相关内容。速度慢内容量大安全。 However不再以讹传讹GET和POST的真正区别在这篇博客中作者查证HTTP协议后说 在HTTP协议中Method和DataURL Body Header是正交的两个概念也就是说使用哪个Method与应用层的数据如何传输是没有相互关系的。 HTTP没有要求如果Method是POST数据就要放在BODY中。也没有要求如果Method是GET数据参数就一定要放在URL中而不能放在BODY中。 那么网上流传甚广的这个说法是从何而来的呢我在HTML标准中找到了相似的描述。这和网上流传的说法一致。但是这只是HTML标准对HTTP协议的用法的约定。怎么能当成GET和POST的区别呢 之后该博客还对其他几个区别点进行了驳斥。所以上面所说的是按照HTML标准按照HTTP标准的话GET方法请求服务器发送页面POST方法则是要写入页面所以POST方法通常要有Content-Type和认证头通过认证头来证明有权执行所请求的操作。 Response 从服务器返回的消息称作响应Response包括HTTP协议的版本号、请求的状态成功与否等等和文档的MIME类型。 状态行包括一个3位数字的状态码如2xx表示成功常见200表示请求成功3xx表示进行了重定向4xx表示客户错误常见403是禁止的页面404是页面未找到5xx是服务器错误。 消息头 HTTP的头域包括通用头请求头响应头和实体头四个部分。每个头域由一个域名冒号:和域值三部分组成。 通用头域即通用头通用头域包含请求和响应消息都支持的头域。通用头域包含Cache-Control、 Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。请求消息请求头请求消息的第一行为下面的格式Method Request-URI HTTP-VersionHost头域指定请求资源的Intenet主机和端口号必须表示请求url的原始服务器或网关的位置。HTTP/1.1请求必须包含主机头域否则系统会以400状态码返回。Accept告诉WEB服务器自己接受什么介质类型/ 表示任何类型type/* 表示该类型下的所有子类型type/sub-type。Accept-Charset 浏览器申明自己接收的字符集。Authorization当客户端接收到来自WEB服务器的 WWW-Authenticate 响应时用该头部来回应自己的身份验证信息给WEB服务器。User-Agent头域的内容包含发出请求的用户信息。Referer 头域允许客户端指定请求uri的源资源地址这可以允许服务器生成回退链表可用来登陆、优化cache等。如果请求的uri没有自己的uri地址Referer不能被发送。响应消息响应头响应消息的第一行为下面的格式HTTP-Version Status-Code Reason-PhraseHTTP -Version表示支持的HTTP版本例如为HTTP/1.1。Status- Code是一个三个数字的结果代码。Reason-Phrase给Status-Code提供一个简单的文本描述。实体消息实体头和实体请求消息和响应消息都可以包含实体信息实体信息一般由实体头域和实体组成。整理思路开始动手 我的目的到人人网将我的各种信息都download到本地。遇到问题人人网需要用户登录。解决办法只需要获得服务器返回的cookie以后每次访问页面时将此cookie一并发送至服务器就可以了。遇到问题我不会手工构建cookie怎么获取。解决办法先手工模拟浏览器登录人人网获取第一个cookie。遇到问题怎么模拟登录。解决办法向登录页面发送http登录请求。遇到问题登录页面的具体URL是什么http登录请求需要包含哪些信息。解决这两个问题后这篇博客就圆满了。 登录URL 需要进行抓包我选用Chrome因为我的Mac上只有这个。 其实在抓包之前我先看了下网页的编码如图打开chrome的开发者工具optioncommandi点击Elements然后点击左上方的放大镜图标再去网页页面上点击“登录”按钮发现了图中的结构体。 我选中的那一行已经明确表示了表单方法是“POST”猜测action属性就是提交表单的对象也就是登录URL。然而到底是不是呢这只能算个猜测具体是什么URL用抓包去得到的结果比较有说服力。 登录地址猜测.png 点击Network将左上方的圆圈点击变成红色这样chrome就会将打开网页的过程抓取下来。 然而这么做我并没有找到登录时的POST Request我想了好久找了好多参考资料都没写是咋回事。但是当我使用win7下的chrome以及IE时均找到了对应的Request。 这是咋回事经过两者的对比我发现在Mac下chrome抓包结果少了很多尤其是当我在登录界面输入用户名并切换焦点时会生成一个“ShowCaptcha”的Post Request图中有结果点击“登录”后就消失不见了。我猜测是由于在登录的过程中页面进行了跳转使得之前抓取的信息都被覆盖掉了。仔细寻找发现了“Preserve log”鼠标停在按钮上的解释是“Do not clear log on page reload/navigation”选取后才一切正常了结果如图。 个人判断此按钮在mac下才在界面上显示win下是默认勾选的。 屏幕快照 2015-09-21 下午11.48.43.png 找找为数不多的几个POST Request不难发现就是图中的倒数第三个。点击可以看到它的头部信息。 获得信息Request URLhttp://www.renren.com/ajaxLogin/login?11uniqueTimestamp20158113687 url最后写uniqueTimestamp说明它是有时间戳的过段时间此数值就不一样了。 在该界面的最下方可以找到Post Request的Form Data由于可能泄露隐私就不截图了。观察可发现其中有两个关键参数email是我的登录邮箱password是经过处理后的密码。还有其他一些参数尽量还原但是够用就好。 屏幕快照 2015-09-22 上午12.04.22.png http登录请求包 实际上如何构造http登录请求包是个复杂的过程若登录的是taobao这类安全要求较高的网站需要构造很多校验内容。人人网倒是非常简单直接POST Request即可并且发现人人并没有校验HTTP头部。 这也算是最简单的一种了吧。 并且请求包很灵活每个网站的要求还不太一样所以如果以后需要解析其他请求包时再单独分析吧。希望不要太复杂。 首先声明一个cookieJar的对象来保存cookie然后使用urllib2的HTTPCookieProcessor来创建cookie处理器通过此处理器来构建opener并将此opener设置为urllib2的默认opener。 从此之后只要使用此opener就可以使用当前的cookie了。也可以直接使用self.opener效果是一样的只不过这里是显式调用之前的install之后使用urlllib2看不到具体的opener罢了。在下面的第二章截图中两种方式均有实例。 屏幕快照 2015-09-22 上午12.55.44.png 这里只是简单的构造一个Request。可以看到我试用了两个loginURL两者最后都返回了cookie。 并且我分别尝试用这两个cookie去打开http://www.renren.com 发现都成功进入了我的账户 屏幕快照 2015-09-22 上午1.23.29.png 最后提出一个问题登录URL的时间戳是咋回事 目前测试前天的还可以用。分析一下首先这个URL是自动生成的然后和登录相关猜测是在前端编写的。 很快就找到了疑似的js脚本。 屏幕快照 2015-09-23 上午12.03.30.png 打开搜“uniqueTimestam”。 屏幕快照 2015-09-23 上午12.04.36.png 像我一样不懂JS的人可以百度下“js Date”查看函数说明。按照解释我截图中“201582021961”的意思依次是2015年9月星期三0点21秒961毫秒居然没有Minutes 也可以直接在Chrome的开发者工具里面点击“Console”直接输入截图中的命令就可以获得当前的取值。 同时我们从这段js代码中又一次确认了登录URL整个登录也的确是一个简单的Request。其中的变量c存储了POST方法要发送的data我猜的毕竟我不懂js。但是怎么判断这个时间戳是有效的我没看出来我把代码中的时间戳改成2014年也依然有效。总之如果之后登录失败了我们可以选择重新生成一个新的时间戳。 另附带几个chrome开发工具使用说明 Network界面左上方的禁止图标点击后可以清楚当前抓取的所有信息。 有时需要清除浏览器的Cache和Cookie此时在Network右键即可看到选项。 转载于:https://www.cnblogs.com/skying555/p/5249184.html
http://www.zqtcl.cn/news/211152/

相关文章:

  • 文山北京网站建设wordpress漂亮破解主题
  • 做网站需要什么证明嘛wordpress和自己写
  • 蚌埠市网站建设公司网站建设 技术 哪些
  • 网站收录查询临沂seovisual c 网站开发
  • 国际空间站vs中国空间站做网站在哪里接活
  • 怎样宣传网站营销外包公司
  • 工程网站模板制作教程具有价值的专业网站建设平台
  • 用wex5可以做网站吗邯郸seo快速排名
  • 高端品牌网站建设兴田德润可信赖网络运营方案怎么写
  • 新公司网站建设合肥关键词排名优化
  • 网站排名优化+o+m西安网络推广平台公司
  • 找网站建设公司需要注意什么常州网站建设公司好么
  • 不备案的网站很慢网站双线主机优势
  • 南京电子商务网站建设23个营销专业术语
  • 建设银行官网官方网站学习网页制作的网站
  • 开发网站需要什么硬件今年最流行的装修风格
  • 门户网站建设中标结果百度资讯指数
  • 定制企业网站开发公司网站建设的6个基本步骤
  • 网站建设与维护案列网站作品怎么做
  • 茂名放心营销网站开发seo收费
  • 旅游网站品牌建设本地使用宝塔安装wordpress
  • 专门做外链的网站制作论坛类网站模板免费下载
  • 靖江建设行业协会网站投资做网站
  • 做网站视频背景潍坊网站制作建设
  • 深圳市官网网站建设哪家好百度抓取网站登录
  • 免费做cpa单页网站友情链接买卖代理
  • 免费网站建站排名中国最大的软件公司
  • 码云pages做静态网站广西建设培训网
  • 建设网站需要花钱吗网站seo方案策划书
  • 德阳网站怎么做seo陈木胜个人资料