如何从网页上获取所有文字?

时间:2014-08-06 08:55:34

标签: html c++ qt get webpage

我想编写一个程序,使用谷歌翻译或翻译翻译文本。我的程序从网页获取HTML代码,但此代码不包含内容(翻译文本)。如何在我的浏览器中获得完整的代码(ctrl + shift + i [在firefox中])?

Translate::Translate(TRANSLATOR translator)
{
    QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);

    if(translator == GOOGLE){
    link = "https://translate.google.com/#en/fr/text";
    connect(networkManager, SIGNAL(finished(QNetworkReply*)), this, 
          SLOT(replyFinishedGoogle(QNetworkReply*)));
    }
    else if(translator == BING){
    printf("ups BING doesn't work.\n");
    }


    networkManager->get(QNetworkRequest(QUrl(link)));
    //QDesktopServices::openUrl(QUrl(link));
}

...

void ByGoogle::replyFinishedGoogle(QNetworkReply* pReply)
{
    QByteArray data = pReply->readAll();
    QString source(data);

    printf("%s\n", source.toStdString().c_str());

}

1 个答案:

答案 0 :(得分:0)

只有通过浏览器使用时,Google翻译才是免费的。要翻译的文本及其翻译不在源代码中。如果您想在项目中使用翻译,则必须支付费用,而不是使用REST API

您的方法存在的问题在于网址。 #只能被浏览器识别,并触发一些javascript(ajax)代码执行。你应该尝试使用:

translate.google.com/translate_a/t?client=p&text=something&hl=fr&sl=en

但它不会返回html输出。