2013-05-21 25 views
0

我是Python新手。我試圖從網站上抓取數據,並且我想要的數據無法在瀏覽器的視圖>來源中看到。它來自另一個文件。使用Beautifulsoup和Python可以在屏幕上刮取實際的數據嗎?美麗的湯 - 數據不在HTML文件中

示例站點WWW [點] catleylakeman [點] CO(點)英國/ cds_banks.php

如果沒有,這可能使用另一條路線?

感謝

+0

..不,BeautifulSoup是刮刮HTML,而不是屏幕;它根本無法幫助屏幕抓取。你最好用它來找到這個'其他文件'的網址,這樣你就可以抓取__that__。 – kampu

+1

好吧,數據似乎是由[本頁](http://www.catleylakeman.co.uk/bankCDS.php)生成的,那麼爲什麼你不使用它? – mata

+0

@mata謝謝你,會做。 – Reno

回答

2

的「其他文件」是http://www.catleylakeman.co.uk/bankCDS.php?ignoreMe=1369145707664 - 你可以發現這一點。(我懷疑你已經有了),通過使用Chrome的開發者工具,網絡選項卡(或在瀏覽器中的等價物)。

這種格式比最終的html更容易解析;如果網站沒有發佈上述原始數據,通常應該使用HTML刮板作爲最後的手段。

+0

打我吧:) – Pykler

1

我的猜測是,你實際上是在尋找網址是:

http://www.catleylakeman.co.uk/bankCDS.php?ignoreMe=1369146012122 

我發現用它開發人員工具欄中,看着網絡流量(內置到Chrome和Firefox,還使用Firebug)。它被Ajax調用。你甚至不需要美麗的湯來解析這個,因爲它似乎是一個很長的字符串,用*|和有時**|分開。下面應該讓你初步訪問該數據:

import urllib2 
f = urllib2.urlopen('http://www.catleylakeman.co.uk/bankCDS.php?ignoreMe=1369146012122') 
try: 
    data = f.read().split('*|') 
finally: 
    f.close() 
print data