2014-04-01 48 views
2

我想從網站中提取一些數據。我將其保存爲「網頁,僅限HTML」,放在桌面上名爲soccerway.html的文件中。使用BeautifulSoup時出錯

後來我寫了使用IPython的筆記本電腦下面的命令:

from bs4 import BeautifulSoup 
soup=BeautifulSoup(open("soccerway.html")) 

我得到以下錯誤:

IOError: [Errno 2] No such file or directory: 'soccerway.html' 

我該如何解決這個問題?

+0

這有什麼好做BeautifulSoup,當然。 open()調用不會以任何方式工作。 –

+1

您需要使用絕對路徑;您的腳本的當前工作目錄不是桌面文件夾。 –

+0

更好的是,使用* Python *替代下載頁面。 –

回答

1

您不需要手動保存頁面。使用urllib2以獲得您需要的HTML源代碼:

from bs4 import BeautifulSoup 
from urllib2 import urlopen 

soup = BeautifulSoup(urlopen("http://my_site.com/mypage")) 

例子:

>>> from bs4 import BeautifulSoup 
>>> from urllib2 import urlopen 
>>> soup = BeautifulSoup(urlopen('http://google.com')) 
>>> soup('a') 
[<a class="gb1" href="http://www.google.com/imghp?hl=en&amp;tab=wi">Images</a>, 
... 
] 
+0

謝謝@alecxe!我發現了問題所在,並修復了它。儘管如此,這很整齊。我也會放棄它! – user3486076

+0

@ user3486076當然,我知道答案並不直接提出解決問題的方法,但它提供了一個更簡單的解決方案。 – alecxe

+0

回到OP的問題:你如何通過加載文件來實現這一點?是的,它可以通過一個URL完成 - 但是文件怎麼樣? –