2016-03-04 29 views
-1

我對Python和網頁抓取非常陌生。我想刮掉賽車站點以獲得每場比賽的日常比賽和統計數據。賽車帖子網頁抓取

我想獲得所有的種族部分鏈接以後使用來提取該種族的統計數據。 (http://betting.racingpost.com/horses/cards/

例子: 32Red.com Fillies´ Handicap 1m1y

我使用此代碼,但我得到的頁面所有鏈接。我需要找到提取數據,但我不知道如何做到這一點。我嘗試了幾種方法,但沒有得到預期的結果。

from urllib.request import urlopen 
from bs4 import BeautifulSoup 

html = urlopen("http://betting.racingpost.com/horses/cards/") 
bsObj = BeautifulSoup(html.read()) 
namelist=bsObj.select("a") 
for i in namelist: 
    print(i['href']) 

回答

0

如果我理解你的問題的權利,你想鏈接在表的第三列,對不對?

能夠爲這一工作是什麼改變了選擇和環路

rows = bsObj.select("div#race_result tr") 
for row in rows: 
    print(row.select("td:nth-of-type(4)")) 

不幸的是,在列中沒有類,但是這應該是足夠安全與你的結構。

+0

嗨,謝謝你的幫助。我對Python非常陌生,我試圖自己學習,但很多時候我被阻止。 與我的問題相關的想法是抓住相關鏈接並使用它們來取消通訊錄頁面。 對於主要鏈接,「http://betting.racingpost.com/horses/cards/」添加相關鏈接「card.sd?race_id=643937 & r_date = 2016-03-06」以廢棄該頁面。 – Lubinho

+0

@lubinho你怎麼樣?我有興趣做同樣的事情 - 我還沒有開始,但有一個Python的理解 – roastbeeef

+0

新的評論提請我注意這一點。這聽起來像你想建立一個適當的網刮,刮整個網站。你看過[Scrapy](https://scrapy.org/)嗎? – jsfan