Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Qt] Parsowanie dokumentu www
peter13135
post
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Mam taki kodzik :
Kod
    QWebPage page;
    QWebFrame * frame = page.mainFrame();
    frame->setHtml(str);
    QWebElement document = frame->documentElement();
    QWebElementCollection tables = document.findAll(".table");
    int numTables = tables.count();
    qDebug() << numTables;
    return;


Pod zmienną str znajduje się źródło tej strony : http://panoramafirm.pl/szukaj/mazowieckie,...wa/firmy,1.html

Chcę pobrać ilość elementów o klasie table. Niestety program podaje, że tych elementów jest 0. Podczas gdy w rzczywistości jest ich 15.

Gdy zamiast ".table" dam "a", to zwraca mi to 17, czyli jakieś linki znajduje ale chyba jest ich ciut za mało.

W czym może być problem ?

Wszystkie tabelki są w divie o klasie "results" <- tego diva nie mogę pobrać.
Mogę za to pobrać div o nazwię 'socialIcons right" ale nie w całości - na nim program kończy parsowanie.

Ten post edytował peter13135 4.08.2012, 16:07:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
katsuo
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 1.05.2007

Ostrzeżenie: (0%)
-----


Zrobiłem po swojemu, wklejając kod gdzie trzeba. Debug zwrócił dwie liczby:
0
25
Na szybko wstawiłem ramkę (ui->webView), kod:
MainWindow.h
Kod
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QWebElementCollection>
#include <QWebFrame>
#include <QDebug>
namespace Ui {
class MainWindow;
}
PS: Bez okien też jakoś się dało, ale nie pamiętam:P
class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    void on_webView_loadFinished(bool arg1);

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


mainwindow.cpp
Kod
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QUrl url("http://panoramafirm.pl/szukaj/mazowieckie,warszawa/firmy,1.html");
    ui->webView->setUrl(url);
    ui->webView->load(url);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_webView_loadFinished(bool arg1)
{
    QWebPage* page = ui->webView->page();
   QWebFrame * frame = page->mainFrame();
   QWebElement document = frame->documentElement();
     QWebElementCollection tables = document.findAll(".table");
     int numTables = tables.count();
     qDebug() << numTables;
}


Ten post edytował katsuo 8.08.2012, 18:41:48
Go to the top of the page
+Quote Post

Posty w temacie
- peter13135   [Qt] Parsowanie dokumentu www   4.08.2012, 15:30:02
- - everth   Dawno nie miałem już z Qt styczności ale spróbuj z...   6.08.2012, 12:51:01
- - cojack   Pobierz treść najprościej jak się da, wrzuć do DOM...   6.08.2012, 13:30:49
- - peter13135   Kod frame->setHtml(str); qDebug(...   6.08.2012, 19:20:43
- - rzymek01   ten kod, który podałeś znajduje się z źródle stron...   6.08.2012, 21:38:53
- - peter13135   Nie wiem o co Ci chodzi. Dałem linka w pierwszym p...   7.08.2012, 08:28:46
- - everth   Znalezione w necie: [CPP] pobierz, plaintext webVi...   7.08.2012, 11:04:53
- - peter13135   Zrobiłem inaczej. Za pomocą regexpa znalazłem pozy...   7.08.2012, 17:10:50
- - katsuo   Całe api webkita jest po to, żebyś nie musiał korz...   8.08.2012, 02:15:39
- - peter13135   CytatCałe api webkita jest po to, żebyś nie musiał...   8.08.2012, 16:39:56
- - katsuo   Zrobiłem po swojemu, wklejając kod gdzie trzeba. D...   8.08.2012, 18:36:53
- - everth   @katsuo prawdopodobnie ma rację. Jeśli QWebFrame z...   8.08.2012, 20:00:02
- - peter13135   Jak to debug zwrócił 0 i 25 ? Tabelek o tej klasie...   8.08.2012, 20:30:35
- - everth   Jeśli moje przypuszczenie jest poprawne - metoda s...   8.08.2012, 21:08:07
- - katsuo   1. Następnym razem dołączaj cały kod, nie wróżymy ...   8.08.2012, 21:24:12
- - peter13135   No dobra, więc przerobiłem swój kodzik na taki : ...   8.08.2012, 21:46:13
- - katsuo   spakuj cały projekt i wyślij na jakiś (lekki)hosti...   8.08.2012, 21:51:55
- - peter13135   http://www.sendspace.pl/file/b9a852801bddf23ea6047...   9.08.2012, 21:46:09
- - zegarek84   popisz trochę więcej w JavaScript - to Ci powinno ...   10.08.2012, 00:13:30


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 20:04