使用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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章