寻找登录的post地址

  • 在form表单中寻找action对应的url地址

    • post的数据是input标签中name的值作为键,真正的用户名密码作为值的字典,post的url地址就是action对应的url地址

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

    • 勾选perserve log按钮,防止页面跳转找不到url

    • 寻找post数据,确定参数

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

      • 参数会变

        • 参数在当前的响应中

        • 通过js生成

定位想要的js

  • 选择会触发js时间的按钮,点击event listener,找到js的位置

  • 通过chrome中的search all file来搜索url中关键字

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

安装第三方模块 (用于刷新网页)

  • pip install retrying

  • 下载源码解码,进入解压后的目录,python setup.py install

  • ***.whl 安装方法 pip install ***.whl

-----------------------------------------------------------

、reqeusts.util.dict_from_cookiejar  把cookie对象转化为字典
1.1. requests.get(url,cookies={})
、请求 SSL证书验证
response = requests.get("https://www.12306.cn/mormhweb/ ", verify=False)
、设置超时
response = requests.get(url,)
、配合状态码判断是否请求成功
assert response.status_code ==
下面我们通过一个例子整体来看一下以上4点的用法
# coding=utf-8
import requests
from retrying import retry headers={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"} @retry(stop_max_attempt_number=3)
def _parse_url(url,method,data,proxies):
print("*"*20)
if method=="POST":
response = requests.post(url,data=data,headers=headers,proxies=proxies)
else:
response = requests.get(url,headers=headers,timeout=3,proxies=proxies)
assert response.status_code == 200
return response.content.decode() def parse_url(url,method="GET",data=None,proxies={}):
try:
html_str = _parse_url(url,method,data,proxies)
except:
html_str = None return html_str if __name__ == '__main__':
url = "www.baidu.com"
print(parse_url(url))

--------------------

In []: import requests

In []: response = requests.get('http://www.baidu.com')

In []: response.cookies
Out[]: <RequestsCookieJar[Cookie(version=, name='BDORZ', value='', port=N
one, port_specified=False, domain='.baidu.com', domain_specified=True, domain_in
itial_dot=True, path='/', path_specified=True, secure=False, expires=,
discard=False, comment=None, comment_url=None, rest={}, rfc2109=False)]> In []: requests.utils.dict_from_cookiejar(response.cookies)
Out[]: {'BDORZ': ''} In []: requests.utils.cookiejar_from_dict({'BDORZ': ''})
Out[]: <RequestsCookieJar[Cookie(version=, name='BDORZ', value='', port=N
one, port_specified=False, domain='', domain_specified=False, domain_initial_dot
=False, path='/', path_specified=True, secure=False, expires=None, discard=True,
comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)]> In []: requests.utils.quote('http://tieba.baidu.com/f?kw=李颜')
Out[]: 'http%3A//tieba.baidu.com/f%3Fkw%3D%E6%9D%8E%E9%A2%9C' In []: requests.utils.unquote('http%3A//tieba.baidu.com/f%3Fkw%3D%E6%9D%8E%E9%
...: A2%9C')
Out[]: 'http://tieba.baidu.com/f?kw=李颜'

json使用注意点

  • json中的字符串都是双引号引起来的

    • 如果不是双引号

      • eval:能实现简单的字符串和python类型的转化

      • replace:把单引号替换为双引号

  • 往一个文件中写入多个json串,不再是一个json串,不能直接读取

    • 一行写一个json串,按照行来读取

分析post与json的更多相关文章

  1. elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0

    1.本次采用的一台主机,将所有的软件安装一台上进行测试工作. 2.安装部署:https://blog.51cto.com/hwg1227/2299995 3.简单调试 输出rubydebug inpu ...

  2. android应用:TVlauncher源码分析之Androidmanifest.json

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...

  3. SQL Server2016 原生支持JSON

    SQL Server2016 原生支持JSON SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML 索引以及各种管理 XML 或输出 XML 格式的函数. ...

  4. Delphi XE6 原生解析json

    Delphi XE5带了system.json单元,原生提供了json支持类.下面是解析json用法说明: 最简单的JSON大致像这样 { "date":"周二(今天, ...

  5. Android学习笔记之Fast Json的使用

    PS:最近这两天发现了Fast Json 感觉实在是强大.. 学习内容: 1.什么是Fast Json 2.如何使用Fast Json 3.Fast Json的相关原理 4.Fast Json的优势, ...

  6. JSON数据解析(转)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...

  7. [转]asp.net的ajax以及json

    本文转自:http://www.cnblogs.com/ensleep/p/3319756.html 来现在这家公司以前,从未接触过webform,以前在学校做的项目是php,java以及asp.ne ...

  8. C#实现中国天气网JSON接口测试

    接上一篇,经过反复的查看,最终从这篇文章中找到了一个可用的JSON接口,于是研究了一下中国天气网JSON接口的测试: 和上一篇XML接口测试的原理是一样的,只是需要安装一下Newtonsoft.Jso ...

  9. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

随机推荐

  1. winform 使用webbrowser 打开不了pdf的解决办法

    最近有个项目需要在winform 打开网络路径的pdf文件,自然想到了webbrowser,但是让我没想到的是,在我电脑调试一点问题都没有,但是到了其他同事的电脑是各种各样的问题,有的打不开,有的显示 ...

  2. webpack 配置之入门二(css 篇)

    在项目中我们通过 css 来美化页面,css 也成为了网站不可或缺的一部分,这章节主要介绍 webpack 处理 css 部分, 1.webpack 处理 css 在 webpack 中,我们通过 s ...

  3. 前端自动化构建工具——gulp环境搭建教程

    gulp是前端工程化的工具,它可以对html,css,js等代码和图片进行压缩,也可以对sass和less等预处理语言进行编译,代码部署.gulp学起来简单,用起来方便,大大提高我们工作效率. 这里可 ...

  4. 加载ubuntu的时候卡在‘SMBus Host Controller not enabled'错误

    实验系统:ubuntu-16.04.6-server-amd64 我在VMware安装完这个系统后进入发现卡在了’SMBus Host Controller not enabled‘里,后来查过网络发 ...

  5. PHP算法之最长公共前缀

    ### 解题思路 方法太笨重后期优化 循环比较 循环长度利用max(最长字符串的循环) 不满住条件的截取 ### 代码 ```php class Solution {     /**      * @ ...

  6. BIO、NIO和AIO

    BIO(Blocking I/O)同步阻塞I/O 这是最基本与简单的I/O操作方式,其根本特性是做完一件事再去做另一件事,一件事一定要等前一件事做完,这很符合程序员传统的顺序来开发思想,因此BIO模型 ...

  7. bootstrap img自适应

    img 添加class名img-responsive适配屏幕

  8. mui框架页面每次加载操作

    最近在优化自己用mui开发的app,主要还是针对交互这块儿,这里简单给大家说一下问题点场景,就是我是通过动态添加底部tabBar的方法创建了一个底部可以切换的操作区域,代码如下: mui.init() ...

  9. 自己的php框架

    spl_autoload_register('imooc::load');当我们new的类不存在,将触发括号里的方法. is_file()判断文件是否存在.

  10. delphi xe10 手机内部系统相关操作(手机信息、震动、剪贴板、键盘、电话、拨号)

    //获取手机信息 function GetPhoneInfo(): string; Var TelephonyManager: JTelephonyManager; TelephonyServiceN ...