欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 爬虫系统学习3——chrome分析post与json

爬虫系统学习3——chrome分析post与json

2025/2/24 18:13:46 来源:https://blog.csdn.net/2301_78696436/article/details/144148458  浏览:    关键词:爬虫系统学习3——chrome分析post与json

目录

  • 1、寻找post地址
      • (1)找到js位置——用选择工具选择有js事件的按钮,在事件监听器中跳转到对应的 js 文件
      • (1)找到js位置——search all files
      • (2)当遇到不清楚的js操作时,都可以在console 里进行尝试
      • (3)js添加断点debug
      • (4)总结1——寻找登录的post地址
      • (5)总结2——定位想要的js
  • 2、requests 小技巧
    • (1)cookie对象转化为字典 或 字典转化为cookie对象
    • (2)url 解码 、 编码
    • (3)请求 SSL 证书验证
    • (4)设置超时参数timeout、配合状态码判断是否请求成功 assert、retry装饰器

1、寻找post地址

post_data字典中的键是 input 标签下 name 属性对应的值
在这里插入图片描述

(1)找到js位置——用选择工具选择有js事件的按钮,在事件监听器中跳转到对应的 js 文件

在这里插入图片描述

(1)找到js位置——search all files

在这里插入图片描述

(2)当遇到不清楚的js操作时,都可以在console 里进行尝试

在这里插入图片描述

(3)js添加断点debug

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)总结1——寻找登录的post地址

  • 在form表单中寻找action对应的url地址
    • post的数据是input标签中name的值作为键,真正的用户名密码作为值的字典,post的url地址就是action对应的url地址
  • 抓包,寻找登录的url地址
    • 勾选perserve log按钮,防止页面跳转找不到url
    • 寻找post数据,确定参数
      • 参数不会变,直接用,比如密码不是动态加密的时候参数会变
      • 参数会变
        • 参数在当前的响应中
        • 通过js生成

(5)总结2——定位想要的js

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

2、requests 小技巧

(1)cookie对象转化为字典 或 字典转化为cookie对象

import requests
r = requests.get('http://www.baidu.com')
# 将 cookie 转化为 字典
print(r.cookies)
print()
res=requests.utils.dict_from_cookiejar(r.cookies)
print(res)
# 将字典转化为 cookie (会有信息缺失)
res_cook = requests.utils.cookiejar_from_dict(res)
print()
print(res_cook)

(2)url 解码 、 编码

print(requests.utils.unquote('http%3a%2f%2fwww.baidu.com'))
print(requests.utils.quote('http://baidu.com'))

在这里插入图片描述

在这里插入图片描述

(3)请求 SSL 证书验证

出现 SSLERROR

requests.get(url,verify=False)

(4)设置超时参数timeout、配合状态码判断是否请求成功 assert、retry装饰器

from retrying import retry
import requests
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'}
@retry(stop_max_attempt_number=3)# 下面的程序允许报错三次,超过三次整个程序报错
def _parse_url(url,method,data):print("*"*20)# 判断程序执行次数if method=='POST':r =requests.post(url,headers=headers,data=data)else:r = requests.get(url,headers=headers,timeout=3)assert r.status_code==200return r.content.decode()def parse_url(url,method='GET',data=None):try:html_str=_parse_url(url,method,data)except:html_str=Nonereturn html_strif __name__=='__main__':print(parse_url('www.baidu.com'))

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词