2016-02-18 52 views
1

我試圖用Pywinauto獲得Chrome標籤的url這樣的:如何從Python獲取來自Chrome的網址?

(僞代碼)

  1. 按F6直接鏈接線。
  2. 按Ctrl + C,從剪貼簿
  3. 新政複製網址
  4. 獲取URL與BS4,採購,硒的URL等

我與第1步完成,停留在第2步同樣,我不知道如何處理第3步。因此,我認爲我發現的方法不正確,效率不高。 有人可以建議我應該做什麼或給我一個更好的方法?

+0

這不是很清楚你試圖做...你想從已經打開'Chrome'瀏覽器窗口中複製網址使用它呢?你想在哪裏使用它? – Andersson

+1

'pywinauto 0.5.4'無法從Chrome獲取網址,而無需使用類似於「TypeKeys」和剪貼板抓取的技巧。即將到來的'pywinauto 0.6.0'將能夠做到這一點。 –

+0

@安德森對不起,不清楚。我想獲取網址並使用BS4,Requests,Selenium來處理它。例如,我可能會通過url獲取網站中的表格。希望能幫助到你!謝謝! –

回答

0

只是爲了總結所有的評論中一個答案......

pywinauto 0.5.4是不是能夠得到從Chrome中的網址不一樣TypeKeys和剪貼板抓住竅門。來pywinauto 0.6.0將能夠做到這一點正確的方式。

如果Chrome已在運行,只需使用connect而不是start

我也推薦TypeKeys("^c", set_foreground=False),因爲URL已經集中在{F6}之後,焦點可能會切換到主窗口。

Application().connect(title=u'How can I get a url from Chrome by Python? - Stack Overflow - Google Chrome', found_index=0)也比較好,因爲標題應該是唯一的。如果有2個窗口found_index=01是有用的。

要獲取剪貼板數據:

from pywinauto import clipboard 
print(clipboard.GetData()) 
+0

真的非常感謝您的幫助!我有最後的問題。您的建議效果很好,但會引發pywinauto.findwindows.WindowAmbiguousError,這意味着它找到兩個以上匹配的窗口。但是,我確信我只打開一個窗口,名爲「我怎樣才能從Python獲取網址? - Stack Overflow - Google Chrome」。你有沒有遇到過這個問題?!再次感謝你! –

+0

除了標題之外,可能'found_index = 0'會幫助你(沒有測試它,但我應該工作)。 –

0

如果您只想將剪貼板中的內容粘貼到字符串中,則可以使用其中一種包裝pyperclipclipboard,這兩種包裝均可通過pip安裝。

import pyperclip 
print(pyperclip.paste()) 

#or equivalently... 
import clipboard 
print(clipboard.paste()) 

將給出輸出'http://stackoverflow.com/questions/35475103/how-can-i-get-a-url-from-chrome-by-python'(兩次...),如果我複製此網頁的網址。

+0

謝謝你幫助我!你的回答完全解決了我的第三步問題! –