python如何实现网页爬取,并翻译成中文

曾经有个想法,是否可以通过抓取英语新闻,来做一个国人看得懂的国际新闻资讯APP,如今闲暇之余,实现了。

简单而快乐。

现贴出代码分享给你们,做个参考 

import io
import sys
import urllib.request
from lxml import etree
from googletrans import Translator



sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码
url = '外文网页'

res = urllib.request.urlopen(url)
htmlBytes=res.read()
html = htmlBytes.decode('utf-8')
tree = etree.HTML(html)

title = tree.xpath('//h1[@class="post__title"]/a/text()') # 获取标题

result = tree.xpath('//article[@class="post__article "]//text()') # 获取内容

# 内容提取,按照英文句号
content = []
str = ''
for x in result:
	str += x;
	if '.' in x:
		content.append(str)
		str=''
	pass

translator = Translator(service_urls=[
      'translate.google.cn'
    ],timeout=None)
res = translator.translate(content,dest='zh-cn',src='en')

# 输出翻译好的中文
for i in res: print(i.text)

每天进步一点点,加油

                                                                                                                                              ---我是bingo,码路漫漫,且行且珍惜

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
实现网页爬取数据并将列表中的数据谷歌翻译成中文,需要使用Python中的requests库和BeautifulSoup库进行网页爬取和解析,以及使用Googletrans库进行翻译。以下是一个简单的示例代码: ```python import requests from bs4 import BeautifulSoup from googletrans import Translator # 定义要爬取网页链接 url = 'https://www.example.com' # 发送请求并获取响应内容 response = requests.get(url) html = response.content # 解析HTML文件 soup = BeautifulSoup(html, 'html.parser') # 获取需要翻译的数据列表 data_list = soup.find_all('span', {'class': 'data'}) # 实例化翻译器 translator = Translator() # 循环遍历数据列表并翻译 for data in data_list: # 获取原始数据文本 text = data.text.strip() # 判断是否需要翻译(如果已经是中文则无需翻译) if not all('\u4e00' <= char <= '\u9fff' for char in text): # 翻译 translated_text = translator.translate(text, dest='zh-CN').text # 更新原始数据文本翻译后的文本 data.string = translated_text # 输出翻译后的数据列表 for data in data_list: print(data.text.strip()) ``` 在这个示例代码中,我们首先定义了要爬取网页链接,并使用requests库发送请求并获取响应内容。然后使用BeautifulSoup库解析HTML文件并获取需要翻译的数据列表。接下来实例化翻译器,并循环遍历数据列表并翻译。最后输出翻译后的数据列表。请注意,我们使用了一个简单的方法来判断文本是否为中文,如果是中文则无需翻译。这个方法并不完美,但在大多数情况下可以正常工作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RenBingo

一点一滴源于你的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值