栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何模拟请求中的按钮单击?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何模拟请求中的按钮单击?

这是一个使用所有示例句子

requests
并使用以下命令删除所有HTML标记的解决方案
BeautifulSoup

from bs4 import BeautifulSoupimport requestsimport jsonheaders = {    "Connection": "keep-alive",    "Accept": "application/json, text/javascript, */*; q=0.01",    "X-Requested-With": "XMLHttpRequest",    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36",    "Content-Type": "application/json; charset=UTF-8",    "Content-Length": "96",    "Origin": "https://context.reverso.net",    "Sec-Fetch-Site": "same-origin",    "Sec-Fetch-Mode": "cors",    "Referer": "https://context.reverso.net/^%^D0^%^BF^%^D0^%^B5^%^D1^%^80^%^D0^%^B5^%^D0^%^B2^%^D0^%^BE^%^D0^%^B4/^%^D0^%^B0^%^D0^%^BD^%^D0^%^B3^%^D0^%^BB^%^D0^%^B8^%^D0^%^B9^%^D1^%^81^%^D0^%^BA^%^D0^%^B8^%^D0^%^B9-^%^D1^%^80^%^D1^%^83^%^D1^%^81^%^D1^%^81^%^D0^%^BA^%^D0^%^B8^%^D0^%^B9/cat",    "Accept-Encoding": "gzip, deflate, br",    "Accept-Language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",}data = {    "source_text": "cat",    "target_text": "",    "source_lang": "en",    "target_lang": "ru",    "npage": 1,    "mode": 0}npages = requests.post("https://context.reverso.net/bst-query-service", headers=headers, data=json.dumps(data)).json()["npages"]for npage in range(1, npages + 1):    data["npage"] = npage    page = requests.post("https://context.reverso.net/bst-query-service", headers=headers, data=json.dumps(data)).json()["list"]    for word in page:        print(BeautifulSoup(word["s_text"]).text, "=", BeautifulSoup(word["t_text"]).text)

首先,我从Google Chrome DevTools得到了请求:

  1. F12 键输入并选择“网络”选项卡
  2. 点击“显示更多示例”按钮
  3. 找到了最后一个请求(“ bst-query-service”)
  4. 右键单击它,然后选择 复制 >复制为cURL(cmd)

然后,我打开了此在线工具,将复制的cURL插入左侧的文本框中,并复制了右侧的输出(为此使用
Ctrl-C 热键,否则可能无法正常工作)。

之后,我将其插入到IDE中并执行以下操作:

  1. 删除了
    cookies
    字典-在这里没有必要
  2. 重要提示:将该
    data
    字符串改写为Python字典,并用进行换行
    json.dumps(data)
    ,否则,它将返回带有空单词列表的请求。
  3. 添加了一个脚本,该脚本:获取次数以获取单词(“页面”),并创建了一个
    for
    循环,该循环获取该次数的单词并在不使用HTML标签的情况下将它们打印出来(使用BeautifulSoup)

UPD:
对于那些访问了该问题以学习如何使用Reverso Context(不仅仅是模拟其他网站上的按钮单击请求)的人,有一个针对Reverso
API的Python包装器发布:Reverso-API。它可以执行与上述相同的操作,但简单得多:

from reverso_api.context import ReversoContextAPIapi = ReversoContextAPI("cat", "", "en", "ru")for source, target in api.get_examples_pair_by_pair():    print(highlight_example(source.text), "==", highlight_example(target.text))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号