爬虫作业时寻找post的地址和js分析

1、寻找post的地址

  1.1 使用chrome抓包工具

    进入`https://www.renren.com`

    检查网页源代码

    

     定位到form标签下

    (1)在form表单中寻找action对应的url地址,注意:不是所有的网站的action都有url地址,有的对应的是js

    (2)post的数据是input标签中name属性的值作为键,真正的用户名或密码作为值的字典,post的url地址就是action对应的url地址(有的时候是,有的时候不是,需要注意)。

    (3)当form表单的action没有url地址,这时候需要用Network进行抓包获取真正的post的url地址

      1>输入用户名和密码(可以输入错误的)到表单中,抓取发送pose的url

         记住要勾选住Preserve log这样能够留下所有的请求,包括上一次的数据

          1>>当输入错误的数据登录时,浏览器回向登录地址发送请求,这时通过抓包,可以拿到真正的post的url地址

           2>>在抓取到的数据中,对比是哪个网址接受的formdata数据,则该url为目标url

          3>>找到url后,需要分析formdata的参数组成,通过多次的错误请求,对比参数变化

2、人人网案例分析(网页版)

   如果取模拟操作一些网站,首先可以尝试去获取一些相关参数,当相关参数由js动态生成,且url请求中也存在这些相关参数,可尝试取抓取网页版。

  1.进入人人网

    `http://www.renren.com/SysHome.do`

  2.输入错误的账号和密码(记住勾选住Preserve log)

    请求至少两次,观察生成的相同url请求

    (1)相同页面为

        

     (2)分析相同页面的url

      第一个的url为:`http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=202044220269`

      第二个的url为:`http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=202044228203`

      uniqueTimestamp时间戳在变化,待分析

    (3)分析相同url请求的参数

       第一个的FormData

        

       第二个的FormData

        

      第三个FormData

         

      email:三个都没有变化

      icode:验证码,未输入,所以无

      origURL:请求的url,未变,非相关参数

      domain:请求的域名,未变,非相关参数

      key_id:未知,但是都相同,非相关参数

      password:输入的密码都是123,但是生成的加密密码都一样,属于非动态加密的方式

      rkey:未变,属性未知,待分析

    (3)url的时间戳uniqueTimestamp分析

       输入`ctrl+shift+F`找到全局搜索,输入uniqueTimestamp,寻找相关内容

       

         uniqueTimestamp动态生成,由具体值组成。

        至于怎么获得,需要懂一些js语法。

        获取存在一定难度,我们可以看看手机版,是否有这些参数。

    (4)FormData的参数分析

      <1>password加密分析

        <<1>>输入`ctrl+shift+F`找到全局搜索,输入password,寻找相关js

        <<2>>那么多js,如何定位?我们的干什么?这就是目的,通过目的,拟化关键字,在搜索的匹配结果中,寻找待login字样的js

          

           

         <<3>>也可以通过在Sources中查找,Sources存放有服务器返回的所有文件

            我们的目的是找到在登录页面`https://www.renren.com/SysHome.do`中的加密密码的js算法,所有在该网页域名文件夹下找到相关内容。比如login.js。

            

         <<4>>找到加密password的js文件后,便可以逆向分析出加密的方法,变能够用python实现算法加密,得到加密的password值

       <2>rkey的来源

        <<1>>输入`ctrl+shift+F`找到全局搜索,输入password,寻找相关文件

           

         <<2>>分析login.js文件

          输入`ctrl+F`进行文件内搜索,

          

           找到rkey,通过分析发现rkey是属于n的属性,n又是有e提取出来的,e通过`url: "http://login.renren.com/ajax/getEncryptKey"`获取

          在Network中通过抓包,找到

          

          发现它返回一个json文件

          

           这个json文件中有对应的rkey值,然后我们对比FormData中的rkey值,发现是相等的(因为我抓取的文件多次刷新过,所有会不相同)

          通过请求这个地址,我们便可以得到这个rkey值

3、人人网案例分析(手机版)

  1.请求手机版

    

     可以发现,只返回两个数据,一个是rkey,用于获取rkey值,还有一个是clog,用于发送post请求登录。

    数据相比网页版会清爽很多。

  2.FormData分析

    相关参数只有password和rKey

    rKey可以请求:`http://activity.renren.com/livecell/rKey`网址获得,无非是在请求之前多实现一步,而不用考虑其如何生成的。

    2.1 password分析

      (1)点击Elements,通过元素选择器选择“登录”,打开右侧的Event Listeners,勾选Ancestors all和Framework listeners,可以发现

        

        click下对应的监听到的文件,即为相应的js文件,点击进入 ,然后格式化查看(坐下叫有个{},点击即可格式化查看)

        找到文件中有password处理的内容

        

        可以看到password被处理的过程,通过python代码复现,来得到加密值。

    2.2 Console的使用

      将“ $(".password").value”复制到Console中

      

       可以发现,获取到的是输入的密码的值

      Console可以验证js中的代码,当看不懂时,可以粘贴到里面来进行验证

    2.3 js的调试

      在行号中可以通过点击添加断点

      

       添加完断点后,点击登录,既可进入调试状态,点击下一步按钮,程序运行,断点对应的部分,右边状态栏会高亮。

      Scope下的Local下相应变化的值会呈现出来

      鼠标移动到相应的函数下,会弹出一个对话框,是该函数所在的js文件。

4、总结

  4.1 抓包,寻找登录的url地址

    (1)勾选Preserve log按钮,防止页面跳转找不到url

    (2)寻找post数据,确定参数

      <1>参数不会变,直接用,比如密码不是动态加密的时候

      <2>参数会变

        <<1>>参数在当前的响应中

        <<2>>通过js生成

  4.2 定位到想要的js

    (1)选择会出发js事件的按钮,点击event listener,找到js的位置

    (2)通过chrome中的search all file来搜索url中关键字

    (3)添加断点的方式来查看js的操作,通过python来进行同样的操作。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 本次Python作业的主题是爬虫数据分析和可视化。随着互联网的发展,数据量变得越来越庞大,如何从海量数据中获取有用信息,成为了一项重要的技能。因此,我们选择了数据爬取和分析作为大作业的主题。作为一个实用性很强的项目,该项目在实际应用中也是非常有价值的。 首先,我们需要用Python编写爬虫程序,爬取指定的网站数据,将所需数据存储到数据库中。接着,我们可以运用Python强大的数据分析库进行数据分析,如Pandas, Numpy, Matplotlib等。通过数据分析,我们可以得到诸如最热门的文章、最受欢迎的关键词、用户的浏览习惯等有用的信息。最后,我们需要将这些信息进行可视化展示,以便更直观的理解和呈现。 在整个项目中,我们需要注意数据爬取和分析的合理性,确保算法的正确性和数据的完整性。同,还需要考虑程序的效率和可扩展性,以便在面对复杂数据保持良好的稳定性。 本项目不仅是对Python语言的掌握和运用的考验,更是在数据分析和可视化领域的实战锻炼。完成该项目后,我们将对数据分析和可视化的技术和应用有一个更深入的了解。 ### 回答2: 本次Python作业主要包括爬虫、数据分析和可视化三个部分。首先,需要使用Python爬虫技术爬取所需数据。可以选择一些常见的爬虫库,如Requests、Scrapy等,爬取数据的内容可根据实际需求进行选择。 其次,需要对所爬取的数据进行分析。该部分应该着重考虑什么问题需要解决以及如何用数据回答这些问题。常用的数据分析工具和库有NumPy、Pandas、Matplotlib等。在进行分析过程中,可以利用统计学和机器学习的知识对数据进行处理和处理。另外,利用数据分析中常见的可视化技术,将分析结果以图形化的方式呈现,便于理解和交流。 最后,需要将分析结果进行可视化展示,以更好地让人们理解数据的含义和趋势。可以考虑利用Python中的数据可视化库,如Matplotlib、Seaborn或Plotly等。同,也可以考虑使用其他更具交互性和美观性的可视化工具,如Tableau或D3.js等。 需要注意的是,数据的获取和分析应该保证数据的准确性和可靠性。另外,在进行数据分析和可视化,应当遵循数据可视化的设计原则,如传达信息、避免混淆、最小化错误等,以达到更好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值