爬虫chrome分析post和json-1-寻找post地址

本文介绍两种寻找URL地址的方法:一是在form表单中查找action属性对应的URL,适用于普通表单提交;二是抓包分析,适用于JS动态提交的场景。文章详细解释了如何在Chrome浏览器中使用开发者工具进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

寻找url地址的两种方法

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

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

  • 以人人网为例,未登录状态下:
    Elements里的form表单,form里有一个action,即url地址,可通过Ctrl F搜索form
    点击需要输入用户名密码的左侧窗口,Elements下两个input标签中有name对应的值,当进行表单提交时,找的是name对应的值,不是id class对应的值。name作为键,真正的用户名密码作为值的字典形式。把字典提交到action对应的地址里。如下图,键就是email,值就是真正的email(xxx.163.com
    在这里插入图片描述在这里插入图片描述
    此时发送post请求就会成功,成功之后对方的服务器会往我们本地的session设置cookie,下次再用这个session发送post请求就能成功了。
2、抓包

并不是所有的表单form都有action对应的url地址的。使用js发送post请求,拿到对应的响应,同时会设置cookie到本地,页面跳转,我们就能访问登录后的页面了。这种情况下应该怎么办?

  • Network,点击需要输入用户名密码的输入框,进行输入,在Network中查看是给哪个url地址发送了请求。
    但是存在的一个问题是,输入用户名和密码后,页面就会跳转,跳转后就看不到Network当前页面的内容了。
    解决方法之一:输入一个错误的密码。
    解决方法之二:点击登录按钮后,勾选Network下Preserve log复选框,会看到跳转前的url地址,除此还需要数据,会看到在Name列表中home前面还有其他的内容,然后点击Headers,看最下方的form data,多登陆几次进行观察,form data中哪些数据是变化的,哪些是不变的。如果网页版的很多内容都在变化,尝试切换成手机版。
    …参数不变时,直接用,例如密码不是动态加密的时候
    …参数变化时,在当前的响应中;通过js生成的

  • 定位想要的js的3种方法:

passwork每次都是被加密过的,加密后显示的结果都不一样 遇到看不懂的js,复制到console中查看返回的结果

  • 1、点击会触发js的按钮,例如点击登录按钮,再去右侧的Event Listeners,找到js的位置
  • 2、通过chrome中的search all file搜索url中的关键字
  • 3、添加断点查看
学习通5.1版本的爬虫想要通过POST请求获取百度翻译的结果,通常需要遵循以下几个步骤: 1. **设置请求库**:首先,你需要安装Python的一个请求库,如`requests`,用于发送HTTP请求。 ```python pip install requests ``` 2. **构建请求头**:百度翻译API可能需要特定的请求头信息,包括用户代理(User-Agent)等。例如: ```python headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } ``` 3. **构造POST数据**:百度翻译API可能会有特定的数据格式要求,比如源语言、目标语言文本内容。这里是一个基础示例: ```python data = { 'from': 'en', # 源语言,默认英语 'to': 'zh-CN', # 目标语言,中文简体 'q': 'Hello, World!' # 待翻译的内容 } data = bytes(urlencode(data), encoding='utf-8') # 将字典转换为bytes ``` 4. **发起POST请求**: ```python response = requests.post('https://fanyi.baidu.com/api/trans/vip/translate', headers=headers, data=data) ``` 5. **解析响应**:获取到翻译结果后,通常会返回JSON格式,你可以用`response.json()`来提取翻译内容: ```python result = response.json() translated_text = result['trans_result'][0][0]['dst'] ``` 注意:这只是一个基本的示例,百度翻译可能有其具体的API文档限制,频繁大量地请求可能会被封禁。在实际操作前,建议查看官方文档并遵守使用条款。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值