JS逆向 --百度翻译

爬虫分为两个部分:

第一个 伪装   目的:想办法拿到源数据

第二个 交互  目的:想办法提取有用的数据

参数构造流程

这种提交数据得到相应的请求,往往参数比较麻烦,所以参数构造是得到完整请求的关键

以定位到url为前提 

1.先做对比,找出不同的参数

2.从之前的请求响应中找数据

1)网页源代码中查找

2)全局请求搜索

3.js加载调试,查找生成规律

参数来源(重要)

不变的参数写固定值,变动的参数的来源在JS中寻找,即js渗透

一个动态参数的来源可能只有两个:

一是来自之前的请求响应,二是js生成

实战案例--百度翻译

1.打开百度翻译网站 '百度翻译-200种语言互译、沟通全世界!'

2.新建一个百度翻译.py的文件,把目的写下来 

"""
目的:实现爬虫代码自动翻译的功能 
输入中文: 程序翻译 英文 
"""

效果实现:

希望 输入 input('输入你想要翻译的中文:')  # 中国 

print('英文信息:')  # China

3.回到百度翻译,邮件点击检查,选择Network, 刷新网页, 选择 all, response, 找到china

4.选择6,点击header, Request URL 就是我们要找的url,Request Method 是post, 把Request URL 复制到 百度翻译.py 

5.在百度翻译.py 中导入模块, 把 payload里面的参数复制到在百度翻译.py中,header 添加ua参数 

import requests

url = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en'

header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
}

form_data = {
    'from': 'zh',
    'to': 'en',
    'query': '中国',
    'simple_means_flag': '3',
    'sign': '777849.998728',
    'token': '57be1898f78d62d10d30548ca8ed7e1b',
    'domain': 'common',
    'ts': '1700272827505'
}

res = requests.post(url, data=form_data, headers=header)
print(res.text)

运行结果如下

6. 报错说明被反爬了,需要继续添加参数,header里面添加 cookie和Acs-Token, 运行 有结果 

import requests

url = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en'

header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    'Cookie':'BIDUPSID=A6A494468AAD3426A5AD2C590F31B0F7; PSTM=1694525041; BAIDUID=C58252900A625AE07CC490584AD65FB9:FG=1; APPGUIDE_10_6_6=1; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BDUSS_BFESS=E1BdXRIaVF0SFZOcUc1VjBHeUpULUdkYTJwRU5rbTRRa3RLQmxPbWdhQ0d3SHRsSUFBQUFBJCQAAAAAAAAAAAEAAADxtnRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIYzVGWGM1RlV; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BAIDUID_BFESS=C58252900A625AE07CC490584AD65FB9:FG=1; BA_HECTOR=2g042k050ga4a0al21a124a01ildilf1q; ZFY=C1IN5psD414SKDpVf1E9E2CDRz:BGo2SAK0JdVxVmicQ:C; APPGUIDE_10_6_9=1; H_PS_PSSID=39635_39669_39673_39664_39685_39690_39676_39678_39712_39732_39738_39779_39703; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; PSINO=5; delPer=0; BCLID=4577277280475853536; BCLID_BFESS=4577277280475853536; BDSFRCVID=jgPOJexroG3O1HvqS5XUEHtYoFweG7bTDYrEOwXPsp3LGJLVFdWiEG0Pts1-dEu-S2OOogKK0eOTHkfP_gt2OJOuKFu1fBfj6snEtf8g0M5; BDSFRCVID_BFESS=jgPOJexroG3O1HvqS5XUEHtYoFweG7bTDYrEOwXPsp3LGJLVFdWiEG0Pts1-dEu-S2OOogKK0eOTHkfP_gt2OJOuKFu1fBfj6snEtf8g0M5; H_BDCLCKID_SF=tRAOoC_-tDvDqTrP-trf5DCShUFsatbTB2Q-XPoO3KOchqnCKq-hWhLkyhOk2M5f5mkf3fbgy4op8P3y0bb2DUA1y4vp0t3U2mTxoUJ2-KDVeh5Gqq-KXU4ebPRiJPQ9QgbW0fJ75--K8pcO5fRP5j_ELxjBtJJX36nhVn0MBCK0HPonHj_2D5jP; H_BDCLCKID_SF_BFESS=tRAOoC_-tDvDqTrP-trf5DCShUFsatbTB2Q-XPoO3KOchqnCKq-hWhLkyhOk2M5f5mkf3fbgy4op8P3y0bb2DUA1y4vp0t3U2mTxoUJ2-KDVeh5Gqq-KXU4ebPRiJPQ9QgbW0fJ75--K8pcO5fRP5j_ELxjBtJJX36nhVn0MBCK0HPonHj_2D5jP; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1698115034,1700208307,1700272370; ab_sr=1.0.1_MTMyYjE2MzM2NzNhYWQwZWFiMzZmMzRhN2RmM2U0OWIwM2ViOGJlNzc0YzcwN2U3NzlmOGZmODU0Y2I2ZTlkNzZiMWIwMTQzNGViMjczN2EzNWMwZTk2NzM5NDEwYzk2MDg4NzQ1ZGRmODA1MjcxNTU5MmMxZjMxZWIyYzczNWI5N2U1MDgzZGViNWMxZjg0OGFkOGE1YjNmMjJiZjg1ODY1NWFhNTg4NTZkOTNkM2MzODJhYWYzM2JkN2NmY2I0; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1700272827',
    'Acs-Token':'1700272828974_1700272827537_H3kTxGspvVm4
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值