我如何在Qt中解析充满BAD html的页面上的所有"a"html标签"href"属性?
我会使用内置的QtWebKit.不知道它在性能方面是如何做的,但我认为应该抓住所有"糟糕"的HTML.就像是:
class MyPageLoader : public QObject { Q_OBJECT public: MyPageLoader(); void loadPage(const QUrl&); public slots: void replyFinished(bool); private: QWebView* m_view; }; MyPageLoader::MyPageLoader() { m_view = new QWebView(); connect(m_view, SIGNAL(loadFinished(bool)), this, SLOT(replyFinished(bool))); } void MyPageLoader::loadPage(const QUrl& url) { m_view->load(url); } void MyPageLoader::replyFinished(bool ok) { QWebElementCollection elements = m_view->page()->mainFrame()->findAllElements("a"); foreach (QWebElement e, elements) { // Process element e } }
要使用该课程
MyPageLoader loader; loader.loadPage("http://www.example.com")
然后用收藏品做任何你喜欢的事.
这个问题已经很老了.不过我希望这会对某人有所帮助:
我为Qt编写了两个小类,我在sourceforge下发表了这个小类.这将帮助您访问与XML一起使用的html文件.
在这里你可以找到这个项目:
http://sourceforge.net/projects/sgml-for-qt/
在这里你可以找到wiki中的帮助系统.
Drewle