听说Google翻译挺不错的,于是我用Python的selenium把它爬下来了!...

共 3423字,需浏览 7分钟

 ·

2022-02-20 10:10

听说❤️Google翻译❤️挺不错的,于是我用❤️Python的selenium❤️把它爬下来了!!

一、需求分析二、Google 翻译介绍三、网页界面的分析(网页检查)四、使用Python进行实现功能(selenium模块)五、测试功能六、总结

一、需求分析

我们知道,网上有很多的翻译平台,比如:Google翻译、百度翻译、有道翻译、微软翻译等等。本次我们来使用selenium模块实现对Google翻译的爬取的实现。

我们需要上传一个文件给Google翻译,然后再将Google翻译的结果保存在一个文件之中。

当然了,我们是全自动化的处理了啦。也就是说我们使用程序自动的进行这些翻译的操作。

二、Google 翻译介绍

显然,如果你想要访问Google翻译是需要一些魔法知识的,这个不方便在这里叙述,所以如果有需要的话可以私信我,我可以私下教你如何处理了啦。

Google翻译有两种功能,第一种是直接翻译文本,第二种是翻译一个文件里面的内容:

2f23496737f5fe3fd9260139e2631a57.webp文本翻译
这是直接翻译文本的界面。


825269ae68aafeb0b5119eed502eb4e5.webp文件翻译
这是翻译一个文件中的内容的界面。


我们本次使用的是第二种方法,即就是上传一个文件让它来翻译。当然了,我们前面说了我们是使用程序来进行自动化的操作了啦。

三、网页界面的分析(网页检查)

我们打开网页检查的分析界面:

625d7b2b0020a157c8baea4588e3a9d2.webp网页检查
然后,我们知道需要首先点击文档的按钮,然后点击选择文件的按钮:
1、点击文档按钮进行跳转:
我们首先找到文件这个按钮的位置:
我们使用元素选择工具进行选择:
2ba75fc85d6010eb17a022c4b6e9c7a7.webp选择文件
2、点击选择文档的按钮:
与上面的那个是一样的方法:
2bd912185984abc9c0043d1b0b37084d.webp选择文件
然后呢,当我们完成了添加文件的操作以后,会出现一个翻译的按钮:
5a01186a8f6800723fab9324d2374a08.webp点击翻译
我们还需要点击那个翻译的按钮才可以获取得到翻译的结果。


四、使用Python进行实现功能(selenium模块)

我们直接给出代码。里面有比较详细的注释了啦:

from selenium import webdriver
# 导入 python 的 selenium 模块


def transfer(path):
    """
    这个函数是用作访问谷歌翻译的,首先获取文件的路径,然后向浏览器发送。
    :param path: 你想要翻译的文件的绝对路径。
    :return: 空
    """


    browser = webdriver.Chrome()
    # 创建浏览器对象

    browser.get('https://translate.google.cn/'
                '?hl=zh-CN&tab=TT&sl=zh-CN&tl=en&op=translate')
    # 访问谷歌翻译的网址
    # 里面的参数设置了语言的翻译,我们可以进行修改,这里是将汉语翻译成为英语

    h1 = browser.current_window_handle
    # 记录当前的页面
    # 这个操作是放置点击以后找不到我们想要的页面了啦

    ele = browser.find_elements_by_tag_name("button")
    # 获取得到 button 标签并且点击 button
    # 这里采用了通过标签名来获取 button 的方法来进行获取标签,方便后面的点击操作

    ele[1].click()
    # 点击 button

    all_h = browser.window_handles
    # 获取得到所有的页面

    browser.switch_to.window(all_h[0])
    # 选择当前的页面
    h2 = browser.current_window_handle

    upload = browser.find_element_by_id('i34')
    # 获取得到 “添加文件” 的那个按钮的标签
    # 这个标签的 id 是我们通过网页检查获取得到的啦

    upload.send_keys(path)
    # 上传文件
    # path 是文件的绝对路径,有我们自己选择指定

    print(upload.get_attribute('value'))
    # 打印显示文件的路径

    browser.find_elements_by_tag_name("button")[39].click()
    # 这个是点击上传文件成功以后的翻译按钮


    res = browser.page_source
    # 这个是获取得到页面的内容


    with open("result.txt""w+"as f:
        # 这里是将翻译的结果写入一个文件
        # 打开一个文件,然后将内容写入这个文件里面

        print(res[30: len(res) - 20])
        # 显示翻译的结果

        f.write(res[30: len(res) - 20])
        # 将翻译的结果写入文件之中

        f.close()
        # 操作完成文件以后还是需要进行关闭的操作的啦     

    browser.close()
    # 所有的操作完成以后需要关闭浏览器了啦


if __name__ == '__main__':
    # main函数
    # 这个是测试

    transfer(path=r"C:\Users\1\Desktop\Google翻译\google_transfer0\test.txt")
    # 将文件的位置传递到形参 path 里面

把注释去掉以后的代码如下:

from selenium import webdriver


def transfer(path):
    browser = webdriver.Chrome()
    browser.get('https://translate.google.cn/'
                '?hl=zh-CN&tab=TT&sl=zh-CN&tl=en&op=translate')
    h1 = browser.current_window_handle
    ele = browser.find_elements_by_tag_name("button")
    ele[1].click()
    all_h = browser.window_handles
    browser.switch_to.window(all_h[0])
    h2 = browser.current_window_handle
    upload = browser.find_element_by_id('i34')
    upload.send_keys(path)
    print(upload.get_attribute('value'))
    browser.find_elements_by_tag_name("button")[39].click()
    res = browser.page_source
    with open("result.txt""w+"as f:
        print(res[30: len(res) - 20])
        f.write(res[30: len(res) - 20])
        f.close()
    browser.close()


if __name__ == '__main__':
    transfer(path=r"C:\Users\1\Desktop\Google翻译\google_transfer0\test.txt")

五、测试功能

我们进行测试:
test.txt文件:

42166d6fb8b06192bb86fddb239b1044.webp测试文件
翻译完成以后生成的文件:
1e901a01780da349c997f49ae974106b.webp翻译结果

交互端的打印:

a0c5910e57324875de4ef2a47546e931.webp打印内容

以上就是我们的测试,从而看出,已经实现了我们想要的功能了啦。

六、总结

总而言之,以上就是我爬取谷歌翻译的全部操作,主要是使用了selenium模块,希望对大家有些帮助了啦。

最后谢谢大家的阅读了啦。

感谢大家持续以来的鼎力支持,后续一定会再接再厉的哦。


浏览 83
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报