2013-01-03 38 views
1

Beautiful Soup是一個用於從HTML和XML文件中提取數據的Python庫。我會用它來提取網頁數據,但我沒有找到任何方法來點擊按鈕,anchor label這是在我的情況下使用的頁面導航。所以爲此我必須使用任何其他或beautiful soup有我沒有意識到的能力。美麗的湯也能擊中網頁事件嗎?

請指教!

+0

我可以一起使用硒和美麗的湯嗎? – CodeLover

回答

1

要回答你的標籤/評論,是的,你可以一起使用它們(Selenium和BeautifulSoup),不,你不能直接使用BeautifulSoup來執行事件(點擊等)。儘管我自己從未在相同的情況下一起使用它們,但假設的情況可能涉及使用Selenium通過特定路徑導航到目標頁面(即,這些選項爲click(),然後是到下一頁的按鈕),然後使用BeautifulSoup閱讀driver.page_source(其中driver是您創建的'驅動'瀏覽器的Selenium驅動程序)。由於driver.page_source是頁面的HTML,因此您可以按照習慣使用BeautifulSoup,解析出您需要的任何信息。

簡單的例子:

from bs4 import BeautifulSoup 
from selenium import webdriver 

# Create your driver 
driver = webdriver.Firefox() 

# Get a page 
driver.get('http://news.ycombinator.com') 

# Feed the source to BeautifulSoup 
soup = BeautifulSoup(driver.page_source) 

print soup.title # <title>Hacker News</title> 

主要的想法是,你需要閱讀頁面的源代碼,任何時候,你可以以讀取任何你想要傳遞給driver.page_sourceBeautifulSoup

+0

感謝您的回覆!現在我想知道我將如何使用'selenium webdriver'和其他網頁來使用'美麗的湯'來嵌入這樣的模塊來進行網頁導航?這兩個不同的'.py'文件如何在它們之間進行通信。我有點困惑。引導我在這裏瞭解。您可以以[ADO](http://www.devguru.com/technologies/ado/8530.asp)爲例,進入下一頁或者將這些值報廢到「屬性」部分下的文本文件中。如果可能的話請引導我在這裏演示。 – CodeLover

+1

@CodeLover當然,編輯一個非常簡單的例子。希望它有助於:) – RocketDonkey

+0

感謝您表示您的興趣,以幫助我。一個有知識的人應該像你一樣! :) – CodeLover