用“小聪明”实现连续爬取谷歌翻译

自动化测试(一):网页结构分析与Google翻译2023.7.18爬虫实例 day7.18了解爬虫 阅读详情

所需附件stealth.min.js

来自顽强拼搏的阿k博主的stealth.min.js,下载不需要C币或积分,我就不上传了。

前提

之前我发布的浅析Python谷歌翻译库的核心里面的代码仍然可以获取翻译结果,但是对于复杂翻译语种,获取到的结果和网页上的显示不同,这让我很气。
我自己也尝试进行再次破解过,但是万事俱备,只欠x-goog-batchexecute-bgr。这个参数是我的心头病,只要掌握了这个参数的获取方式,就能直接从谷歌翻译官网获取到正确的返回结果。如果有人会获取这个参数,可以留言评论,鄙人感激不尽!

思路

要想实现对复杂语种的准确翻译爬取,只能使用selenium爬虫了,用“所见即所得”的方式,无疑是最简单的爬虫方式,不过谷歌翻译官网默认不会允许webdriver的存在,所以就要使用stealth.min.js文件进行抹除webdirver的特征指纹,使用方式参照源码。

调整

谷歌翻译的自动语种识别有时候不准,拼音会识别为中文,所以这里我借用了一下百度翻译识别语种的接口,如有需要可以自行更改。

代码实现

# _*_ coding:utf-8 _*_
# FileName: google.py
# IDE: PyCharm
# 菜菜代码,永无BUG!

import time
import requests
from fastapi import FastAPI  # pip install uvicorn fastapi jinja2 aiofiles
from urllib.parse import quote
from selenium import webdriver, common
from starlette.middleware.cors import CORSMiddleware
# from selenium.webdriver.chrome.options import Options
# options = Options()

app = FastAPI()
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)
lans = ['af', 'sq', 'am', 'ar', 'hy', 'az', 'eu', 'be', 'bn', 'bs', 'bg', 'ca', 'ceb', 'ny', 'zh-cn', 'zh-tw', 'co', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'et', 'tl', 'fi', 'fr', 'fy', 'gl', 'ka', 'de', 'el', 'gu', 'ht', 'ha', 'haw', 'iw', 'he', 'hi', 'hmn', 'hu', 'is', 'ig', 'id', 'ga', 'it', 'ja', 'jw', 'kn', 'kk', 'km', 'ko', 'ku', 'ky', 'lo', 'la', 'lv', 'lt', 'lb', 'mk', 'mg', 'ms', 'ml', 'mt', 'mi', 'mr', 'mn', 'my', 'ne', 'no', 'or', 'ps', 'fa', 'pl', 'pt', 'pa', 'ro', 'ru', 'sm', 'gd', 'sr', 'st', 'sn', 'sd', 'si', 'sk', 'sl', 'so', 'es', 'su', 'sw', 'sv', 'tg', 'ta', 'te', 'th', 'tr', 'uk', 'ur', 'ug', 'uz', 'vi', 'cy', 'xh', 'yi', 'yo', 'zu']


@app.get('/stop')
def stop():
    driver.close()
    driver.quit()
    print('Stopped complete .')
    return 'Stopped complete .'


@app.get('/translate/{des:str}/{text:str}')
# 比赛开始结束
def competitions(des, text):
    lan = requests.post('https://fanyi.baidu.com/langdetect', data={"query": text}).json()["lan"]
    for la in lans:
        if la in lan.lower():
            lan = la
            break
    else:
        lan = 'auto'
    for la in lans:
        if la in des.lower():
            des = la
            break
    else:
        des = 'zh-CN'
    url = f'https://translate.google.cn/?sl={lan}&tl={des}&text={quote(text)}&op=translate'
    try:
        driver.get(url)
        # driver.find_element_by_class_name('er8xn').send_keys(text)
    except common.exceptions.TimeoutException:
        pass
    while 1:
        try:
            return {'lan': lan, 'des': des, 'res': driver.find_element_by_class_name('VIiyi').text}
        except common.exceptions.NoSuchElementException:
            time.sleep(0.5)


options = webdriver.ChromeOptions()
options.headless = True
options.add_argument('lang=zh_CN.UTF-8')
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36')
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option('excludeSwitches',  ['enable-automation'])  # webdriver防检测
# options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})  # 禁止图片加载
driver = webdriver.Chrome(options=options)
# driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {  # 关闭 window.navigator.webdriver 属性
#     "source": """
#         Object.defineProperty(navigator,'webdriver',{
#             get: () => false
#         })
#     """
# })
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": open('stealth.min.js', 'r', encoding='utf-8').read()})
driver.get('https://translate.google.cn/')
driver.set_page_load_timeout(1)
print('Started complete .')

使用备注

  • 启动方式:uvicorn google:app --reload --port 8080
  • 使用方式:print(requests.get(“http://127.0.0.1:8080/translate/zh-cn/apple”).json()[“res”])
  • 停止方式:requests.get(“http://127.0.0.1:8080/stop”) 随后Ctrl + C手动停止uvicorn服务
  • 不宜连续使用次数过多,没有设计长时间使用的优化,否则最终容易卡住得不到返回值。
stealth-js:StealthSwap 官方 Javascript SDK StealthSwapJS StealthSwapJS 是一个 JavaScript SDK,用于编写与 StealthSwap 协议集成的隐私保护 DApp。 该 SDK 面向希望集成隐身地址和集成隐私增强机制以分发代币、奖励... 该库为椭圆曲线密码术提供了所有低级原语和高级抽象,并与 ENS 集成以发布签名消息或从反向记录中恢复公钥。 开发人员需要为其用户编写处理代码和钱包实用程序。 用法 安装 npm install ethers@next npm install stealthswap-js 集成 StealthSwapJS SDK 是一个 javascript 实现,它与以太坊主网和测试网 (Ropsten) 交互,并允许生成隐藏地址以集成到您的 dapp 中。 // Import the ethers-js library for Ethereum spec co 立即下载

相关推荐

 stealth.min.js文件

selenium操作隐藏浏览器指纹的 stealth.min.js文件下载地址

google batchexecute 研究参考

google 接口研究

qq_24137739的博客 518

stealth.min.js

隐藏特征

使用Python爬虫调用谷歌翻译【21年8月】

使用Python爬虫调用谷歌翻译 现在各大翻译平台工具,可能还得首推谷歌。 昨天刚学习爬虫,所以用requests库写了一个可以调用的谷歌翻译类,使用者可以直接调用,默认翻译为英文,如果需要翻译为其他语言只需传递相应的参数即可。好了,话不多说直接上代码。 import requests class TranslateByGoogle(): # 初始化信息 def __init__(self): self.__headers = { "User-A

qq_40846669的博客 3936

stealth.min.js.rar

stealth.min.js 隐藏 模拟浏览器有几十个特征 2021.7.12可用

stealth.min.js 反检测,自动化脚本

用于浏览器自动化反检测

【免费下载】 stealth.min.js 资源文件下载

stealth.min.js 资源文件下载 【下载地址】stealth.min.js资源文件下载 stealth.min.js 资源文件下载 项目地址: https://gitcode.com/open-source-toolki...

gitblog_09774的博客 1133

scrapy框架爬虫,爬取百度翻译、有道翻译、谷歌翻译、爱词霸翻译、必应翻译,包括防爬虫破解

scrapy框架爬虫,爬取百度翻译、有道翻译、谷歌翻译、爱词霸翻译、必应翻译,包括防爬虫破解,使用方式just文件夹下python run.py “想要翻译的内容”

【Python爬虫】你还在纠结选择哪个爬虫库嘛,全都拿来吧你

requests——最普遍使用的爬虫库 you_get——最受欢迎的爬虫库 autoscraper——最智能的爬虫库 urllib——最底层的爬虫库

user_from_future的博客 1万+

stealth.min.js 隐藏 爬虫特征

stealth.min.js 隐藏 爬虫特征

金融风控实战:用Python从零搭建贷款违约预测模型(附完整数据集)

本文详细介绍了如何使用Python从零构建金融风控中的贷款违约预测模型,涵盖数据清洗、特征工程、模型构建与评估等全流程。通过实战案例展示逻辑回归、XGBoost和LightGBM三大算法的对比,特别强调AUC-ROC指标在金融风控中的重要性,并附完整数据集和代码实现。

weixin_29175469的博客 237

【Python爬虫】你还不知道选哪个解析网页的库吗,看我从此告别选择困难

介绍了解析网页的多种库

user_from_future的博客 3319

ubuntu18.04 显卡驱动问题 造成屏幕分辨变大 NVIDIA-SMI has failed because it couldn't communicate with ....等问题

问题1:装好了显卡驱动,cudnn,tensorflow等没问题,一直可以用。但是突然有一天不行了,终端输入:nvidia-smi 显示:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed...

梦萦飞--CV/DL/ML 2248

专栏博文目录

专栏博文目录

qq_39603829的博客 870

使用C#调用百度地图并实现坐标点的设置以及读取

使用C#调用百度地图申请百度地图密钥以及查看百度API程序实现功能:最终图利用webBrowser控件展示地图 申请百度地图密钥以及查看百度API 网址:http://lbsyun.baidu.com/apiconsole/key#/home 网址:http://lbsyun.baidu.com/jsdemo.htm#c1_3 程序实现功能: 1、输入网址那可以调用本地的html文件,也可以访问其他网站 2、输入坐标、添加坐标按钮,可以将坐标值传入html文件中,显示在经纬度的文本框中 3、定位按钮可以

qq_39261042的博客 3734

PADS Layout中快速导入自定义元器件封装的实用技巧

本文详细介绍了在PADS Layout中高效导入自定义元器件封装的实用技巧。针对封装“找不到”、“对不上”、“导不进”三大痛点,系统梳理了从封装文件来源识别、库规划管理,到三种核心导入场景(从库文件添加、从其他设计借用、处理第三方格式)的完整操作流程,并提供了导入后的关键验证清单与常见问题排查方法,旨在帮助硬件工程师快速掌握这一提升设计效率的关键技能。

weixin_29302047的博客 375

python爬虫实践之谷歌翻译

目录 概述 准备 所需模块 涉及知识点 运行效果 完成爬虫 1. 分析网页 2. 爬虫代码 3. 中译英 概述 爬取谷歌翻译,根据提供的文字进行翻译。 准备 所需模块 urllib.request execjs:执行JS代码的模块 涉及知识点 python基础 urllib模块基础 运行效果 控制台打印: 完成爬虫 1. 分析网页 打开谷歌翻译,按F1...

二木成林 2670

表面声波滤波器——叉指换能器设计实战:从关键参数到结构选型

本文深入探讨了表面声波滤波器核心部件叉指换能器的实战设计流程。从目标驱动出发,详细解析了如何根据中心频率确定关键参数指宽,并权衡叉指对数对带宽和插入损耗的影响。文章进一步介绍了通过变迹加权优化频率响应,并对比了梯形结构与纵向耦合谐振滤波器等主流结构选型的适用场景与优缺点,为工程师提供从理论计算到仿真验证的完整设计指南。

weixin_29216353的博客 102

py反爬stealth.min.js

移除selenium 当中爬虫的特征。2.下载stealth.min.js。#屏蔽保存密码提示框。#1.打开谷歌浏览器。

m0_72735063的博客 2125

Autosar 下电过程-基于ETAS工具

本文介绍基于ETAS工具对应的BIP包的下电过程,仅供参考。在最后调用SBC下电时,需要理清楚SBC的休眠流程,否则可能会出现休眠又唤醒情况。后面有空会介绍9471的休眠流程。

赞的博客 809

谷歌翻译 翻译文档爬虫

谷歌文档翻译 接口的破译 js代码还原

Blue 1408

第三方 API 调用 OpenClaw 出现 LLM request timed out 的解决方案

本文主要介绍了第三方 API 调用 OpenClaw 出现 LLM request timed out 的解决方案,希望能对使用OpenClaw的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

问卷星python+selenium自动填写

1.下载插件文件stealth.min.js 链接:https://pan.baidu.com/s/18XV6ROkSg-FEnADyY6AHeA 提取码:bpee 2.自动填写过程中发现挂梯子不用弹出滑动验证,用本地ip刷到几十份就挂了 3.代码 from selenium.webdriver.support.ui import WebDriverWait import time import random from selenium.webdriver import Chrome from seleni

qq_19742617的博客 2026

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

selenium框架操作stealth.min.js文件隐藏浏览器指纹特征(stealth.min.js文件免费下载)

selenium框架操作stealth.min.js文件隐藏浏览器指纹特征(stealth.min.js文件免费下载)

努力让自己发光,对的人才能迎着光而来 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 今天的日常
下一篇: C#制作算式字符串处理程序
user_from_future
博客等级 码龄5年 4066粉丝 115原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值