我想控制在網頁瀏覽器中加載的網頁。 XUL可以滿足這個要求嗎?如何控制在瀏覽器中加載的頁面?
回答
任何允許注入DOM事件或腳本標記的東西都可以用來控制網頁。 XUL是一種用於描述GUI的語言,並且對此沒有用處。
以下是您如何控制網頁的的一些示例。您沒有提供任何有關您打算如何使用所述控件(瀏覽器擴展,後臺腳本等)的詳細信息,因此我將舉例說明所有我能想到的情況:
如果您想要遠程控制網頁的獨立於您的正常瀏覽器腳本的一部分,您有以下選項:
- 如果您不需要運行網站的JavaScript,使用僞瀏覽器一樣機械化對於Perl,Python或Ruby或可能Twill如果您是shell腳本。它們比實際執行Javascript的東西要輕,但它們仍然會處理cookie,並讓您填寫表單並以編程方式點擊鏈接。
- 如果您確實需要運行該網站的javascript,最簡單的解決方案是編寫一個Python腳本,該腳本使用帶有QWebView的PyQt,但實際上並不需要顯示任何窗口。 QtWebKit提供了一個受jQuery啓發的界面,用於在網站的DOM中進行轉換以及注入Javascript的功能,這就是遠程控制網頁所需的全部功能。 (QtWebKit does要求在Linux上運行GUI,但不需要實際顯示任何窗口來使用它。)必要的QtWebKit API也應該出現在Qt綁定中,以用於您可能更喜歡的任何其他語言。
- 如果你不能使用QtWebKit,但需要Javascript(也許你正在編寫一個GTK +應用程序),你的選擇將受到更多的限制,但任何瀏覽器部件應該至少支持注入新的
<script>
標籤來控制頁。 This answer(也是我的)有一個用於各種Python工具包的Web小部件列表,並且大多數(可能全部)它們也可用於其他語言。您還需要閱讀編寫用戶腳本的說明。
如果你想腳本的網頁您現有的瀏覽器中(也許隱藏廣告或跳過網頁上的嘮叨屏幕時,您經常訪問),您有以下選項:
- 如果你想修改瀏覽器本身,編寫瀏覽器擴展。這可能是你爲什麼問XUL的原因。你真正應該問的是Javascript(實際上Firefox和Chrome擴展的部分是用Javascript編寫的,XUL只是用於在Firefox中佈置窗口)......具體來說,鉻稱爲Content Scripts。火狐內部對我來說太複雜了,無法學習相應的術語。)這是你最強大的選擇,但它也是最受歡迎的選擇,你的擴展只能在一個瀏覽器上工作。
- 如果您只是想修改或控制網站,請填寫userscript。用戶腳本是瀏覽器注入到您選擇的頁面中的Javascript的一部分。他們以某種形式或其他通過火狐Greasemonkey,Chrome,Opera,各種鮮爲人知的瀏覽器支持,並與IE7Pro擴展,通過Internet Explorer 7和8,他們不能修改瀏覽器的界面,但除了他們非常強大。 (example)
實際上我想要做的是我想自動登錄到我的GMail帳戶。然後,我想在我的數據庫中的To:字段中放置一個電子郵件。然後,我想將文本文件中的內容放在郵件的「內容」區域中,然後我想發送郵件。我想重複所有這些步驟,因爲我的所有潛在客戶都沒有收到他們的電子郵件。 – 2010-09-20 08:12:48
我該怎麼做才能滿足這個要求。哪種語言可以滿足這個要求?感謝您的詳細信息。 – 2010-09-20 08:13:40
如果你想發送郵件,正確的方法(和最簡單,最可靠的太)是使用SMTP直接發送郵件,就像原生的郵件客戶端做的,而不是炮製一個脆弱的「自動化Gmail的網絡界面」的黑客。如果你告訴我你在用什麼語言,我可以告訴你如何去做,但是請創建另一個問題並將其與我聯繫起來,這樣我們就不會混淆這個問題。 – ssokolow 2010-09-20 09:21:07
- 1. 在後臺加載瀏覽器頁面
- 2. 如何從iframe中在瀏覽器中加載新頁面?
- 3. 如何強制谷歌瀏覽器重新加載頁面
- 4. 如何限制重新加載選項(瀏覽器)上的頁面加載?
- 5. Web瀏覽器控件 - 頁面加密
- 6. 在頁面加載時,如何讓我的瀏覽器全屏?
- 7. 瀏覽器不加載Php頁面
- 8. Chrome瀏覽器不加載頁面,Safari瀏覽器沒有
- 9. 強制網頁瀏覽器控制無法加載圖像
- 10. 如何在瀏覽器中使用網頁瀏覽器控件?
- 11. 瀏覽器如何加載網頁?
- 12. 歷史Api:如何告訴瀏覽器頁面正在加載?
- 13. 如何檢測瀏覽器是否正在加載新頁面
- 14. 控制器結束後在瀏覽器中更改頁面
- 15. 加載ASPX頁面到Windows瀏覽器控件
- 16. c#winforms網頁瀏覽器控制 - 如何下載圖像?
- 17. Web瀏覽器在PowerShell監控頁面
- 18. 如何在我的瀏覽器正在加載的頁面中插入Javascript?
- 19. 如何強制瀏覽器下載頁面內容資源?
- 20. 加載頁面時強制瀏覽器刷新
- 21. 強制頁面重新加載到Android本機瀏覽器
- 22. 如何在頁面加載期間在瀏覽器中顯示任何內容
- 23. 如何暫停瀏覽器呈現,直到頁面加載?
- 24. 如何使用Javascript(庫)剖析瀏覽器頁面加載?
- 25. pushState:如何防止瀏覽器嘗試加載頁面
- 26. 如何強制瀏覽器使用HTML加載頁面的所有組件?
- 27. 如何在瀏覽器中直接瀏覽先前瀏覽過的頁面?
- 28. Safari瀏覽器重新加載網頁下載頁面
- 29. 在頁面加載時,mypic.jpg是否會被瀏覽器下載?
- 30. 使瀏覽器在重新加載頁面時返回頁首
您想以何種方式控制網頁? – 2010-09-20 05:34:06