2014-12-09 2 views
0

내가 여기에 약간의 프로젝트를하고 있어요와 인터넷 페이지의 소스 코드에서 정보를 있어요 추출 : 나는 웹보기 위젯으로 Qt는 UI를 사용내가 할 노력하고있어 Qt는 창조주가

을 나는 것 웹 페이지의 소스 코드에서 특정 정보를 추출하는 것과 같습니다. 구성 요소의 주문 코드입니다. 내가 추출하고 싶은 부분이 예에서 1,758,990입니다 :

<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으로 내보내려고했지만 실제로 어떤 용도로 사용할 수 있는지 알지 못합니다. 무엇을 사용해야합니까?

미리 감사드립니다.

(또한 나는, 나는 쓰기 관습까지 .. I F 그래서 만약 용서 질문에 아주 새로운 미안 해요)

편집 : 나는 findFirstElement를 (사용하려고 해요) 함수가 있지만 1758990 만 추출하는 올바른 쿼리를 찾을 수 없습니다.findFirstElement ("# productDescription li : nth-child (2)")를 사용하여 "주문 코드 : 1758990"을 추출 할 수 있지만 주문을 원하는 경우 코드 : . (

+0

내가 이해 있는지 확실하지 않습니다를, 당신이 원하는 것은 HTML 입력에서 데이터를 추출하는 것입니다? 이 링크가 도움이되는지 확인하십시오. http://qt-project.org/forums/viewthread/35281 웹 페이지에서 DOM 데이터를 추출합니다.) – danielfranca

+0

예이 기술은 이전에 본 적이 있으므로 사용하려고했습니다. 하지만 실제로 원하는 것은 하나의 정보 (이 경우 구성 요소의 주문 코드) 만 추출하는 것입니다. – MadManatee

답변

0

좋아요. 나는 길을 찾았습니다. (물론 가장 깨끗한 것이 아니라 ...)

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