chrome分析post与json

一.寻找post地址

寻找登录的post地址

1.在form表单中寻找action对应的url地址
 post的数据是input标签中name的值作为键,真正的用户密码作为值得字典,post的url地址就是action对应的url地址
2.抓包,寻找登录的url地址
勾选perserve log按钮,防止页面跳转找不到url
寻找post数据,确认参数

  • 参数不会变
    直接用,比如密码不是动态加密的时候
  • 参数会变
    参数在当前的响应中
    通过js生成

定位想要的js

1.选择会触发js时间的按钮,点击event listener,找到js的位置
2.通过Chrome中的searach all file 来搜索url中的关键字
3.添加断点的方式来查看js操作,通过python来进行同样的操作

二.百度翻译

import json
import requests
import sys


class BaiduFanyi:
    def __init__(self, trans_str):
        self.lang_detect_url = "https://fanyi.baidu.com/langdetect"
        self.trans_str = trans_str
        self.trans_url = "https://fanyi.baidu.com/extendtrans"
        self.headers = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 "
                                      "(KHTML, like Gecko) Chrome/77.0.3865.75 Mobile Safari/537.36"}

    def parse_url(self, url, data):
        response = requests.post(url, data=data, headers=self.headers)
        return json.load(response.content.decode())

    def get_ret(self, dict_response):
        ret = dict_response["trans"][0]["dst"]
        print("结果是:", ret)

    def run(self):  # 实现主要逻辑

        # 1.获取语言类型
        # 1.1 准备post的url地址,post_data
        lang_dict_data = {"query": self.trans_str}
        # 1.2 发送post请求,获取响应
        lang = self.parse_url(self.lang_detect_url, lang_dict_data)["lan"]
        # 1.3 提取语言类型
        # 2.准备post的数据
        trans_data = {"query": self.trans_str, "from": "zh", "to": "en"} if lang == "zh" else \
            {"query": self.trans_str, "from": "zh", "to": "en"}
        # 3.发送请求,获取响应
        dict_response = self.parse_url(self.trans_url, trans_data)
        # 4.提取翻译的结果
        self.get_ret(dict_response)


if __name__ == '__main__':
    trans_str = sys.argv[1]
    baidu_fanyi = BaiduFanyi(trans_str)
    baidu_fanyi.run()

三.requests的小技巧

requests小技巧
1.requests.utils.dict_from_cookiejar 把cookie对象转化为字典
2.请求SSL证书验证
 response = requests.get(“htt[😕/www.12306.cn/mormhweb/”,verify = False)
3.设置超时
  response = requests.get(url,timeout=10)
4.配合状态码判断是否请求成功
  assert response.status_code == 200

举例验证上面4个方法:

在这里插入图片描述

在这里插入图片描述

import requests

headers = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 "
                         "(KHTML, like Gecko) Chrome/77.0.3865.75 Mobile Safari/537.36"}


def _parse_url(url):
    response = requests.get(url, headers=headers, timeout=3)
    assert response.status_code == 200
    return response.content.decode()


def parse_url(url):
    try:
        html_str = _parse_url(url)
        
    except:
        html_str = None
    return html_str


if __name__ == "__main__":
    url = "http://www.baidu.com"
    print(parse_url(url))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值