Python selenium 爬取百度翻译结果的代码实现

这篇具有很好参考价值的文章主要介绍了Python selenium 爬取百度翻译结果的代码实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python是一种功能强大的编程语言,可以用于各种任务,包括网络爬虫。
在本文中,我们将使用selenium库,来实现爬取百度翻译结果的功能。百度翻译是一个广泛使用的在线翻译工具,它提供了多种语言之间的即时翻译服务。selenium库可通过pip安装:pip install selenium
使用Selenium库,我们可以模拟用户在浏览器中的操作,从而实现自动化地访问百度翻译网页、输入要翻译的文本、获取翻译结果等功能。

先放代码运行效果:
百度翻译爬虫代码,python,selenium,爬虫
代码首先加载网页。由于初次加载网页会有广告提示,需要首先点击关闭按钮。
然后是正儿八经的输入原文、点击按钮、等待结果、获取译文的过程。

废话少说直接上代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time,traceback
def translate(string):
    global prev_result
    if not completed:
        raise Exception("页面未加载完成")
    # 输入要翻译的文本。注意未登录时原文最多为1000字,超出的不会翻译(已登录后为5000字)
    input_element = driver.find_element(By.ID, 'baidu_translate_input')
    input_element.clear()
    input_element.send_keys(string)

    # 点击翻译按钮
    translate_button = driver.find_element(By.ID, 'translate-button')
    translate_button.click()

    # 等待结果出现
    wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'ordinary-output.target-output.clearfix')))
    # 等待新的结果变化
    while driver.find_element(By.CLASS_NAME, 'ordinary-output.target-output.clearfix').text==prev_result:
        time.sleep(0.05)#pass

    # 获取翻译结果
    output_element = driver.find_element(By.CLASS_NAME, 'ordinary-output.target-output.clearfix')
    output_text = output_element.text
    prev_result=output_text

    # 输出翻译结果
    return output_text
driver_path = r"D:\Users\Administrator\msedgedriver.exe"
completed=False
prev_result=""

# 初始化Chrome浏览器驱动
driver = webdriver.Edge(executable_path=driver_path)

# 打开百度翻译网页
# 百度翻译网址构成:https://fanyi.baidu.com/#<源语种>/<目标语种>/<初始原文>
# 常用语种缩写:中文:zh,英语:en,日语:jp,韩语:kor,粤语:yue,俄语:ru,德语:de,法语:fra
#               泰语:th,葡萄牙语:pt,西班牙语:spa,阿拉伯语:ara,自动检测:auto
from_lang="en"
to_lang="zh"
driver.get('https://fanyi.baidu.com/#%s/%s' % (from_lang,to_lang))
# 等待页面加载完成
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.ID, 'baidu_translate_input')))
completed=True

# (自己新增)点击关闭提示按钮
close_btn=driver.find_element(By.CLASS_NAME, 'app-guide-close')
close_btn.click()

try:
    while True:
        s=input("输入原文:")
        if s.strip():
            print("翻译结果:"+translate(s))
finally:
    driver.quit()

综上所述,使用Python的selenium库可以方便地实现对翻译结果的自动化爬取。通过代码,我们可以学习selenium库进行页面元素定位、模拟用户输入和点击的实现。
希望这篇文章对您学习和应用selenium库有所帮助。欢迎点赞、评论、收藏

----------这里还没有结束-------------------
拓展:使用API获取百度翻译结果的代码:文章来源地址https://www.toymoban.com/news/detail-775621.html

import http.client
import hashlib
import json
import urllib
import random
import traceback

def baidu_translate(content):
    appid = '' # 省略,需自行购买百度翻译的API
    secretKey = '' # 省略, 原因同上
    httpClient = None
    myurl = '/api/trans/vip/translate'
    q = content
    fromLang = 'en' # 源语言
    toLang = 'zh'   # 翻译后的语言
    salt = random.randint(32768, 65536)
    sign = appid + q + str(salt) + secretKey
    sign = hashlib.md5(sign.encode()).hexdigest()
    myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
        q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
        salt) + '&sign=' + sign
    try:
        httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
        httpClient.request('GET', myurl)
        # response是HTTPResponse对象
        response = httpClient.getresponse()
        jsonResponse = response.read().decode("utf-8")# 获得返回的结果,结果为json格式
        js = json.loads(jsonResponse)  # 将json格式的结果转换字典结构
        if js.get("error_msg",None):
            raise Exception(str(js["error_code"])+js["error_msg"])
        dst = str(js["trans_result"][0]["dst"])  # 取得翻译后的文本结果
        return dst
    except Exception:
        traceback.print_exc()
    finally:
        if httpClient:
            httpClient.close()

while True:
    text=input("输入英文:")
    if text:
        print(baidu_translate(text) or '')

到了这里,关于Python selenium 爬取百度翻译结果的代码实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【教你写爬虫】用Java爬虫爬取百度搜索结果!可爬10w+条!

    大家好,我是盆子。今天这篇文章来讲解一下:使用Java爬虫爬取百度搜索结果。 首先,展示爬取的数据,如下图。 爬取结果1: 爬取结果2: 代码爬取展示: 可以看到,上面爬取了五个字段,包括 标题,原文链接地址,链接来源,简介信息,发布时间。 用到的技术栈,主要有这

    2024年02月05日
    浏览(17)
  • selenium爬虫——以爬取澎湃新闻某搜索结果为例

    本程序致力于实现以下目标: (1)爬取澎湃新闻关于“反腐”的全部文章内容; (2)按标题、链接将其整理到excel中; (3)将标题和文章整合到一个word文档中。 许久没有正经写过了,有些生疏,代码耦合度蛮高的,所幸目标达成了。 webdriver的版本要与浏览器一致 如果用

    2024年02月06日
    浏览(11)
  • Python爬虫入门系列之Selenium实现动态页面爬取

    在前一篇博客中,我们学习了如何使用多线程优化爬虫程序。但是,如果要爬取的网页是动态生成的或者包含大量JavaScript代码,单纯的静态页面爬取就不足够了。为了解决这个问题,我们可以使用Selenium库来模拟真实的浏览器行为,从而实现动态页面的爬取。 Selenium是一个用

    2024年02月11日
    浏览(14)
  • Python爬虫实战入门:爬取360模拟翻译(仅实验)

    需求 目标网站: https://fanyi.so.com/# 要求:爬取360翻译数据包,实现翻译功能 所需第三方库 requests 简介 requests 模块是 python 基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。 安装 pip install -i https://py

    2024年02月22日
    浏览(16)
  • Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)(1)

    browser.find_element_by_xpath(‘.//ul[@id=“headerNav”]/li[4]’).click() 8.点击群管理之后,进入群管理界面,我们需要的是成员管理 WebDriverWait(browser, 1000).until( EC.presence_of_all_elements_located( (By.CLASS_NAME, ‘color-tit’) ) ) browser.find_element_by_class_name(‘color-tit’).click() 9.点击成员管理之后会重新

    2024年04月28日
    浏览(11)
  • 【爬虫案例】用Python爬取百度热搜榜数据!

    目录 一、爬取目标 二、编写爬虫代码 三、同步视频讲解 四、完整源码 您好,我是@马哥python说,一名10年程序猿。 本次爬取的目标是:百度热搜榜 分别爬取每条热搜的: 热搜标题、热搜排名、热搜指数、描述、链接地址。 下面,对页面进行分析。 经过分析,此页面有XH

    2024年02月13日
    浏览(12)
  • 【爬虫实战】用python爬取微博任意关键词搜索结果、exe文件

    项目功能简介: 1.交互式配置; 2.两种任意来源(直接输入、本地文件); 3.自动翻页(无限爬取); 4.指定最大翻页页码; 5.数据保存到csv文件; 6.程序支持打包成exe文件; 7.项目操作说明文档; 一.最终效果 视频演示: 用python爬取微博搜索结果、exe文件

    2024年02月02日
    浏览(28)
  • Python爬虫|使用Selenium轻松爬取网页数据

    1. 什么是selenium? Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作浏览器一样。支持的浏览器包括IE,Firefox,Safari,Chrome等。 Selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用

    2024年02月04日
    浏览(14)
  • python爬虫实战 scrapy+selenium爬取动态网页

    最近学习了scrapy爬虫框架,想要找个目标练练手。由于现在很多网页都是动态的,因此还需要配合selenium爬取。本文旨在记录这次学习经历,如有疑问或不当之处,可以在评论区指出,一起学习。 对scrapy不了解的同学可以阅读这篇文章 爬虫框架 Scrapy 详解,对scrapy框架介绍的

    2024年02月07日
    浏览(37)
  • Python爬虫实战:selenium爬取电商平台商品数据

    目标 先介绍下我们本篇文章的目标,如图: 本篇文章计划获取商品的一些基本信息,如名称、商店、价格、是否自营、图片路径等等。 准备 首先要确认自己本地已经安装好了 Selenium 包括 Chrome ,并已经配置好了 ChromeDriver 。如果还没安装好,可以参考前面的前置准备。 分析

    2024年04月11日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包