Python批量查字典和爬取双语例句

这篇具有很好参考价值的文章主要介绍了Python批量查字典和爬取双语例句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近,有网友反映,我的批量查字典工具换到其它的网站就不好用了。对此,我想说的是,互联网包罗万象,网站的各种设置也有所不同,并不是所有的在线字典都可以用Python爬取的。事实上,很多网站为了防止被爬取内容,早就提高了网站的安全级别,不会让用户轻意爬取内容的。

由于这名网友想要的是韩语翻译,所以我就不能拿原来的网站来操作了,只好去网上查询网速快、又不对爬虫有限制的网站来操作。终于,探索出了爬取某字典网站上内容的方法。

一、用BeautifulSoup获取翻译

这是一个字典网站,也是一个双语句库网站,对于汉语的韩语翻译,我们可以通过requests来获取网页源文,再用BeautifulSoup进行解析,然后用soup.find()查找想要的标签信息和Class,提取文本信息,然后再写入到xls文件就可以了,代码如下:

import xlwt
import requests
from bs4 import BeautifulSoup

headers = {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 Edg/114.0.1823.37"
    }

def get_word(word):
    url=f"https://zh.glosbe.com/zh/ko/{word}"
    resp = requests.get(url,headers=headers)
    soup = BeautifulSoup(resp.text, 'html.parser')
    # 查找查询结果
    result = soup.find('div', class_="inline leading-10")
    if result:
        return result.text.split()[0]
    else:
        return "未找到翻译"
    
def process_txt_file(filename):
    # 创建工作簿
    wb = xlwt.Workbook()
    # 创建表单
    sh = wb.add_sheet("sheet 1")
    with open(filename, 'r', encoding='utf-8') as file:
        words = [i.strip() for i in file.readlines()]
    for index,word in enumerate(words):
        sh.write(index,0,word)
        sh.write(index,1,get_word(word))
    wb.save('translation_results.xls')
#调用函数并传入txt文件路径
process_txt_file('words.txt')

二、用openpyxl来写入xlsx文件

上面的代码中采用的是xlwt来写入到xls文件,我们也可以改用openpyxl,同时,我们还可以通过soup.h3.string来更快地定位所需要的位置信息。这次我们把查询的内容由韩语改为英文,代码优化如下:

import requests
from bs4 import BeautifulSoup
import openpyxl
headers = {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 Edg/114.0.1823.37"
    }
def get_word(word):
    url=f"https://zh.glosbe.com/zh/en/{word}"
    resp = requests.get(url,headers=headers)
    soup = BeautifulSoup(resp.text, 'html.parser')
    # 查找查询结果
        #results = soup.find_all('div', class_="py-2 flex")
    results = soup.h3.string
    if results:
        return results.strip()
    else:
        return "未找到翻译"
#     if results:
#         for result in results:
#             print(result.replace("\n\n\n","\n").strip()) 
#     else:
#         return "未找到翻译"
def process_txt_file(filename):
    workbook = openpyxl.Workbook()
    sheet = workbook.active

    with open(filename, 'r', encoding='utf-8') as file:
        words = [i.strip() for i in file.readlines()]

    for index, word in enumerate(words):
        translation = get_word(word)
        sheet.cell(row=index + 1, column=1).value = word
        sheet.cell(row=index + 1, column=2).value = translation

    workbook.save('translation_results.xlsx')

#调用函数并传入txt文件路径
process_txt_file('words.txt')

三、提取双语例句到xlsx文件

先上效果,以下是多个关键词及其相关例句的图示:

Python批量查字典和爬取双语例句,python小项目,python,开发语言

相关代码如下:

import requests
from bs4 import BeautifulSoup
import openpyxl
headers = {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 Edg/114.0.1823.37"
    }
def get_word(word):
    url=f"https://zh.glosbe.com/zh/en/{word}"
    resp = requests.get(url,headers=headers)
    soup = BeautifulSoup(resp.text, 'html.parser')
    # 查找查询结果
    results = soup.find_all('div', class_="py-2 flex")
    lst=[]
    if results:
        for result in results:
            text = result.text.replace("\n\n\n","\n").strip()
            lst.append(text.split("\n"))
        return lst
    else:
        return "未找到翻译"

def process_txt_file(filename):
    workbook = openpyxl.Workbook()
    sheet = workbook.active
    with open(filename, 'r', encoding='utf-8') as file:
        words = [i.strip() for i in file.readlines()]
        for word in words:
            sheet.append([word])
            paras = get_word(word)
            for para in paras:
                sheet.append(para)
    workbook.save('translation.xlsx')
 
    #调用函数并传入txt文件路径
process_txt_file("words.txt")

四、学后的反思

1. 爬虫不是万能的,不能完全依靠爬虫去获取一切网上的信息,毕竟有很多网站的案例防御机制是针对爬虫的

2. 利用BeautifulSoup是很不错的解析、提取网页标签的方法,如果无法完全获取网页信息就要考虑带上headers,cookies等信息。

3. 写入excel文件有多种 方法,列表写入Excel可以考虑sheet.append()方法,简单实用。文章来源地址https://www.toymoban.com/news/detail-627602.html

到了这里,关于Python批量查字典和爬取双语例句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • python-爬虫-xpath方法-批量爬取王者皮肤图片

    球员:乔尔-恩比德 - - - 球队:76人 球员:卢卡-东契奇 - - - 球队:独行侠 球员:达米安-利拉德 - - - 球队:开拓者 爬取一张图片 该角色有7个皮肤 爬取7个图片 获取这7个皮肤的名字 保存图片 获取所有英雄皮肤 把该行网址复制到网址栏,会自动下载该文件 https://pvp.qq.com/web20160

    2024年02月09日
    浏览(54)
  • Python批量爬取B站法外狂徒张三所有视频【含jS逆向解密】

    传说中,有人因为只是远远的看了一眼法外狂徒张三就进去了😂 我现在是获取他视频,岂不是直接终生了🤩 网友:赶紧跑路吧 😏 好了话不多说,我们直接开始今天的内容吧! 环境使用 Python 3.8 Pycharm 模块使用 import requests import csv import datetime import hashlib import time 爬虫实现

    2024年02月14日
    浏览(34)
  • Python入门教程+项目实战-12.2节: 字典的操作方法

    目录 12.2.1 字典的常用操作方法 12.2.2 字典的查找 12.2.3 字典的修改 12.2.4 字典的添加 12.2.5 字典的删除 12.2.6 知识要点 12.2.7 系统学习python 字典类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法,在本节的内容中,教同学们彻底掌握字典类型的常用操作方

    2024年02月04日
    浏览(57)
  • 【旅游景点项目日记 | 第二篇】基于Python中的Selenium爬取携程旅游网景点详细数据

    Gitee仓库地址:travel-server:景点旅游项目服务端 确保安装python3.x环境 以管理员身份打开cmd, 安装selenium、pymysql、datetime ,默认安装最新版即可 确保chrome安装对应版本的驱动 (将该驱动放在chrome安装路径下),用于控制chrome浏览器,并将路径添加到环境变量的Path变量中,如

    2024年04月13日
    浏览(55)
  • C++、python双语言弹窗教程与对比

                        MessageBox指的是显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。消息框中返回一个整数值,该值指示用户单击了哪个按钮。 例子:  本文介绍了用C++、Python实现弹窗和它们之间的对比

    2024年02月14日
    浏览(28)
  • 【爬虫实战项目】Python爬虫批量旅游景点信息数据并保存本地(附源码)

    今天给大家介绍的是Python爬虫批量下载旅游景点信息数据,在这里给需要的小伙伴们代码,并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多,所以我们需要考虑更换代理IP和随

    2023年04月20日
    浏览(48)
  • 【python】我用python写了一个可以批量查询文章质量分的小项目(纯python、flask+html、打包成exe文件)

    web 效果预览: 先去质量查询地址:https://www.csdn.net/qc 输入任意一篇文章地址进行查询,同时检查页面,在Network选项下即可看到调用的API的请求地址、请求方法、请求头、请求体等内容: 请求头里面很多参数是不需要的,我们用 ApiPost 这个软件来测试哪些是必要参数。 经过

    2024年02月13日
    浏览(41)
  • 持续进化,快速转录,Faster-Whisper对视频进行双语字幕转录实践(Python3.10)

    Faster-Whisper是Whisper开源后的第三方进化版本,它对原始的 Whisper 模型结构进行了改进和优化。这包括减少模型的层数、减少参数量、简化模型结构等,从而减少了计算量和内存消耗,提高了推理速度,与此同时,Faster-Whisper也改进了推理算法、优化计算过程、减少冗余计算等

    2024年02月06日
    浏览(75)
  • 「Python系列」Python字典

    在Python中,字典(dict)是一个无序的键值对集合。每个键在字典中都是唯一的,而值可以是任何类型的数据(如列表、字典、整数、字符串等)。字典在Python中非常常用,因为它们提供了一种快速查找和访问数据的方法。 字典的键(key)是唯一的,并且不可变(通常是字符

    2024年02月21日
    浏览(35)
  • 【数学建模美赛 | 国赛必学模型算法精讲】层次分析法——模型原理及Matlab+Python双语言代码演示

    层次分析法 是 评价决策类 中一个比较常用的方法,很多留意美赛赛题的小伙伴们就会发现,在美赛EF类题目的历年O奖论文中,层次分析法出现的概率是非常高的。层次分析法呢一般是针对评价决策类的题目,让我们评价或选择一个可能更好、更优的政策及方案,那这样呢,

    2024年01月25日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包