2016-01-26 61 views
-1

代碼循環瀏覽頁面,但並未完全遍歷整個頁面,通常會在比賽的會議中停止在第6或第7場比賽。任何人都可以提出BS爲什麼會在這裏失敗。是url http://www.gbgb.org.uk/resultsMeeting.aspx?id=135549無法抓取整個頁面

from urllib import urlopen 
from bs4 import BeautifulSoup 
baseURL = 'http://www.gbgb.org.uk/resultsMeeting.aspx?id=135549' 
html = urlopen(baseURL) 
bsObj = BeautifulSoup(html, 'lxml') 

nameList = bsObj.findAll("div", {"class": "resultsBlockHeader"}) 
for i in nameList: 


nameList1 = i.findAll("div", {"class": "track"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "date"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "datetime"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "grade"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "distance"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "prizes"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList = bsObj.findAll("div", {"class": "resultsBlock"}) 
for i in nameList: 

nameList2 = i.findAll("li", {"class": "trap"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "first essential fin"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "essential greyhound"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "sp"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "timeSec"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "timeDistance"}) 
for j in nameList2: 
    print(j.get_text()) 

蟒蛇網絡刮BS4

+0

問題是與您的連接性,嘗試使用更高的速度互聯網 –

回答

0

我不能讓你的代碼工作作爲描繪。然而,使用

from urllib.request import urlopen 

我能夠在修復某些縮進之後運行其餘代碼就好了。請注意0​​。

當我使用瀏覽器時,我可以在網頁上看到13個比賽結果,並且我可以使用您的BS代碼獲得13場比賽結果。

您的BS代碼正在工作。所以我們只需要在調用BS之前查看任何問題。並且唯一可能的線路導致問題是html = urlopen(baseURL)。也許你正在處理一些連接問題。

我猜你是雙重檢查網頁上公開呈現的內容,對嗎?我懷疑隨着時間的推移,比賽的數量會有所不同,因此獲得6或7個結果可能就是所有的結果。

+0

嗨hfuhruhurr.Many感謝您的答覆,我認爲你一定是正確的問題上漲,但是當我用你的urllib代碼替換上述代碼我得到「導入錯誤沒有模塊命名請求」。當我看着pycharms設置它告訴我,請求已安裝,所以我嘗試了筆記本++,但得到了相同的消息。我要重新安裝請求,有沒有其他建議感謝Moon – moonshadow

+0

我會原材料來推斷這個問題。也就是說,只需從終端窗口啓動一個python會話即可。從urllib.request輸入'urlopen'並打回車。如果你沒有問題,那麼這是你的PyCharms/Notepad ++設置。 (注意:'urlopen'功能的代碼位於你的安裝目錄中的一個名爲「request.py」的文件中,如果沒有它,你不能使用'urlopen'。) – hfuhruhurr

+0

任何機會,你的代碼文件名爲「urllib py「爲?如果你使用「csv」模塊的話,我發現你不應該使用「csv.py」作爲文件名。我猜Python認爲你的csv.py是被調用的csv模塊。 – hfuhruhurr

0

修復幾個小縮進問題後,該代碼適用於我。