我正在使用lxml.html在Python中的一些HTML解析。我想在瀏覽器呈現頁面之後粗略估計頁面中元素的位置。它不一定是確切的,但通常是正確的。爲了簡單起見,我將忽略Javascript對元素位置的影響。作爲最終結果,我希望能夠迭代元素(例如,通過lxml)並找到它們的x/y座標。有關如何做到這一點的任何想法?我不需要繼續使用lxml,並且很樂意嘗試其他庫。在Python中的HTML元素位置
2
A
回答
5
PyQt的與WebKit的:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
class MyWebView(QWebView):
def __init__(self):
QWebView.__init__(self)
QObject.connect(self,SIGNAL('loadFinished(bool)'),self.showelements)
def showelements(self):
html=self.page().currentFrame().documentElement()
for link in html.findAll('a'):
print(link.toInnerXml(),str(link.geometry())[18:])
if __name__=='__main__':
app = QApplication(sys.argv)
web = MyWebView()
web.load(QUrl("http://www.google.com"))
web.show()
sys.exit(app.exec_())
0
正如Sven所述,您需要一個HTML渲染引擎。之前有人提出了關於呈現HTML的問題,你可以參考一下。
相關問題
- 1. html元素在javascript中的位置
- 2. 關於HTML元素位置
- 3. 對角位置HTML元素
- 4. HTML表格中的位置元素
- 5. 在UIWebView的位置獲取HTML元素
- 6. 設置HTML元素的垂直位置
- 7. html元素的位置的CSS樣式
- 8. Angular 2:獲取HTML元素的位置
- 9. 如何更改HTML元素的位置?
- 10. [python] [selenium]元素的屏幕位置
- 11. 同位素div內的HTML元素位置
- 12. 在HTML元素的絕對中心的位置文本
- 13. HTML元素定位
- 14. 在XSLT/XPath中查找元素在父元素中的位置
- 15. 使用jsoup確定HTML元素位置
- 16. 按位置獲取HTML元素
- 17. 確定HTML元素位置變化
- 18. 如何在Python中查找列表中元素的位置?
- 19. 元素位置
- 20. 位置元素
- 21. 在Windows Forms WebBrowser中更改html元素的位置WebBrowser
- 22. 在堅果殼中獲得HTML元素的50%位置
- 23. 在iframe中找到html元素的位置
- 24. 在body座標中獲取HTML元素的位置
- 25. 如何在Ckeditor的光標位置放置一個html元素?
- 26. 使用SPRY時,放置HTML 5元素的位置在哪裏?
- 27. Python/Selenium:元素位置不正確
- 28. Python:查找元素在陣列中的位置
- 29. 新元素出現時HTML元素位置發生變化
- 30. 元素在網頁中的位置
您將需要一個HTML渲染引擎來獲取這些信息。解析器不會幫助。 – 2010-12-03 11:56:30
您還需要考慮CSS的影響。這些日子裏,沒有它的內容幾乎沒有。 – 2010-12-03 12:05:29