如何使用Selenium检查网站上出现的任何文本的语言

2024-09-28 01:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试一个网站,其中包含用户评论的酒店,可以是任何语言…即,捷克语或俄语,西班牙语或英语等。。。还有一个问题,我如何通过使用Selenium阅读文本来检查文本是哪种语言。在

例如,我习惯于元素.text方法硒阅读文本,然后我想放置一个检查如果它在英语然后做这个其他任何语言做这个。在

这是一个html元素

<div class="innerBubble">
<div class="quote"><a href="/ShowUserReviews-g1-d8729164-r427772133-TAP_Portugal-World.html#CHECK_RATES_CONT" onclick="ta.setEvtCookie('Reviews','title','',0,this.href); setPID();" id="r427772133">“<span class="noQuotes">TRES SATISFAITS</span>”</a></div>
<div class="rating reviewItemInline">
<span class="rate sprite-rating_s rating_s"> <img class="sprite-rating_s_fill rating_s_fill s40" width="56" src="https://static.tacdn.com/img2/x.gif" alt="4 of 5 stars">
</span>
<span class="ratingDate relativeDate" title="October 13, 2016">Reviewed 3 days ago
<span class="new redesigned">NEW</span> </span>
</div>
<div class="googleTranslation reviewItem">
<span class="link" onclick="ta.call('ta.overlays.Factory.reviewTranslate', event, this, '/MachineTranslation?g=1&amp;d=8729164&amp;r=427772133&amp;page=review&amp;sl=fr&amp;tl=en'); ta.trackEventOnPage('Reviews', 'google_translate')">
<img alt="Google Translation" src="https://static.tacdn.com/img2/buttons/googleTranslation.gif">
</span>
</div>
<div class="entry">
<p>
Un peu d'appréhension avant mais vite levée. Très bon accueil et bon service de la part des pnc, repas chaud et bon, même pour ce court vol (1h50). Bonne ponctualité et embarquement des plus efficaces
</p>
</div>

Tags: 文本div语言元素htmlclassetamp
2条回答

这里与selenium驱动程序无关,只需获取文本并使用以下代码 如果需要检测响应用户操作的语言,则可以使用google ajax language API

#!/usr/bin/env python
import json
import urllib, urllib2

def detect_language(text,
userip=None,
referrer="http://stackoverflow.com/q/4545977/4279",
api_key=None):        

query = {'q': text.encode('utf-8') if isinstance(text, unicode) else text}
if userip: query.update(userip=userip)
if api_key: query.update(key=api_key)

url = 'https://ajax.googleapis.com/ajax/services/language/detect?v=1.0&%s'%(
    urllib.urlencode(query))

request = urllib2.Request(url, None, headers=dict(Referer=referrer))
d = json.load(urllib2.urlopen(request))

if d['responseStatus'] != 200 or u'error' in d['responseData']:
    raise IOError(d)

return d['responseData']['language']

print detect_language("Python - can I detect unicode string language code?")

输出

^{pr2}$

检测一种语言,除非html标记将当前的语言

如果在python中使用selenium,则可以使用此函数,为此需要安装nltk和语料库stopwords:

from nltk import word_tokenize
from nltk.corpus import stopwords
def detect_lang(text):
    lang_ratios = {}

    tokens = word_tokenize(text)
    words = [word.lower() for word in tokens]

    for language in stopwords.fileids():
        stopwords_set = set(stopwords.words(language))
        words_set = set(words)
        common_elements = words_set.intersection(stopwords_set)

        lang_ratios[language] = len(common_elements)
    return max(lang_ratios, key=lang_ratios.get)

使用此函数,您可以请求使用的语言:

^{pr2}$

相关问题 更多 >

    热门问题