我必须测试一堆网址,看看这些网页是否有相应的翻译内容。有没有办法使用Python语言返回网页中的内容语言?就像页面是中文一样,它应该返回“中文”``。
我用langdetect
模块检查了它,但无法得到我想要的结果。这些URls采用Web xml格式。内容显示在<releasehigh>
答案 0 :(得分:1)
也许你有一个像这样的标题:
<HTML xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
如果是这种情况你可以看到lang =&#34; fr&#34;这是一个法国网页。如果情况并非如此,猜测文本的语言并非易事。
答案 1 :(得分:1)
您可以提取一大块内容,然后使用某些python语言检测,如langdetect或guess-language。
答案 2 :(得分:0)
这是一个简单的示例,展示了使用BeautifulSoup提取HTML正文文本和langdetect进行语言检测:
from bs4 import BeautifulSoup
from langdetect import detect
with open("foo.html", "rb") as f:
soup = BeautifulSoup(f, "lxml")
[s.decompose() for s in soup("script")] # remove <script> elements
body_text = soup.body.get_text()
print(detect(body_text))
答案 3 :(得分:0)
您可以使用BeautifulSoup从HTML源代码中提取语言。
<html class="no-js" lang="cs">
从源代码中提取lang字段:
from bs4 import BeautifulSoup
import requests
html = requests.get(url).content
soup = BeautifulSoup(html, 'html.parser')
print(soup.html["lang"])