繁体   English   中英

使用Qt Creator从网页的源代码中提取信息

[英]Extract an information from the source code of an internet page with Qt Creator

我正在做一个小项目,这是我想做的事情:

我将Qt ui与webView窗口小部件一起使用,我想从网页的源代码中提取特定信息。 这是组件的订购代码。 在此示例中,我要提取的部分是1758990:

<div id="productDescription">


            <div class="brandLogo">
                <a href="http://uk.farnell.com/multicomp">
                    <img id="supplier_logo" src="http://uk.farnell.com/productimages/promo/en_GB/2217096.jpg" alt="MULTICOMP"/>
                </a>
            </div>


    <ul>
        <li>
            <strong>Manufacturer:</strong>
            <a href="http://uk.farnell.com/multicomp">
                MULTICOMP
            </a>
        </li>
        <li>
            <strong>Order Code:</strong>
            1758990
        </li>
        <li>
            <strong>Manufacturer Part No</strong>
            MC0402B821K500CT
        </li>
    </ul>

    <ul id="technicalData">

                <li>
                    <a href="http://www.farnell.com/datasheets/1859359.pdf" target="_blank" ><span class="pfIcon pfPdf" title="Technical Data Sheet (877.82KB) EN">&nbsp;</span>Technical Data Sheet (877.82KB) EN</a>
                </li>


    </ul>

</div>

我想使用此订单代码并将其放入变量中。 其余的我会管理,但是我找不到正确的工具来查找代码(这是永远不一样的)。 我设法使用toHtml()函数从页面中提取了整个源代码,并试图将其导出到textEdit中,但是我真的不知道它可能有什么用。 我应该使用什么?

先感谢您。

(同样,我很抱歉,我问问题还很陌生,如果我提高写作习惯,请原谅。)

编辑:我正在尝试使用findFirstElement()函数,但我找不到正确的查询来仅提取1758990。我可以使用findFirstElement(“#productDescription li:nth-​​child(2)”提取“订单代码:1758990” “),但我只想要订单代码:。(

好吧,我找到了一种方法(肯定不是最干净的方法,但是很好...)

我有一个按钮来检索代码:

void browser::on_Addtodbbtn_clicked()
{
    QWebElement code = ui->webView->page()->mainFrame()->findFirstElement("#productDescription li:nth-child(2)");
    QString OrderCode = code.toPlainText(); // at this point, OrderCode = "Order Code: 1758990"
    OrderCode.remove("Order Code: "); // I remove the part I don't want
    qDebug() << "OrderCode:" << OrderCode; // Here you go

}

此页面对我有很大帮助: http : //www.w3schools.com/cssref/css_selectors.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM