寻找登录的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. eclipse search只能打开一个文件

    通过search找到的文件只能打开一个.以前search打开的那个文件就自动关闭了,找不到了.解决办法: window-preferences-general-search找到第一行的一个选项  re ...

  2. 在Nginx/Tengine服务器上安装证书

    可以从SSL证书服务控制台下载证书安装到Nginx/Tengine服务器上. 环境:以CentOS 7.Nginx 1.15.6为例. 证书名称以domain name为示例,如证书文件名称为doma ...

  3. js中的Array数组清空

    var data = new Array();//数组 data.length = 0;//数组的长度等于0,数组的项就会被清空

  4. layerui ios不适应问题

    .admin-main {-webkit-overflow-scrolling: touch; overflow: scroll; position: absolute; left: 0; top:  ...

  5. Dijkstra算法举例分析

    题目如下: 如上图,设A为源点,求A到其他各顶点(B.C.D.E.F)的最短路径.线上所标注为相邻线段之间的距离,即权值.(注:此图为随意所画,其相邻顶点间的距离与图中的目视长度不能一 一对等). 解 ...

  6. java中的访问修饰符详解

    主要讲述一下java中protected的修饰控制范围. 在叙述protected修饰符使用之前,先来说一下java,可以发现,开发java程序是一个时时刻刻都在编写类.开发类.定义类的过程.类里面可 ...

  7. C#反射从入门到放弃(这部分遇到的新东西太多了让人接受不能)

    首先,我们需要知道type,type是类型的类型(笑 官方点的说法是,BCL声明了一个Type抽象类,它被设计用来包含类型的特性, 使用这个类的对象(抽象类的对象?这显然是错误的,但是这里用的其实是T ...

  8. 阿里巴巴IPv6应用平台引领下一代互联网

    摘要: 据预测,到2020年底我国IPv6终端设备将达到5亿,正在快速取代IPv4.阿里巴巴网络架构师张先国先生在2018 年GNTC 大会IPv6 专场上分享IPv6应用集团业务(支付宝.淘宝.天猫 ...

  9. NX二次开发-UFUN获取点在面上U,V方向的位置UF_MODL_ask_face_parm【转载】

    NX11+VS2013 #include <uf.h> #include <uf_ui.h> #include <uf_modl.h> #include <u ...

  10. 让nginx支持patchinfo,(支持codeigniter,thinkphp,ZF等框架)

    nginx 的config配置: server { listen ; server_name xxx; ....if (!-e $request_filename) { rewrite ^/(.*)$ ...