2015-06-29 58 views
3

我想從Garmin網站刮高爾夫球的數據。我想要獲得高爾夫球場的名稱和地址,但是我在運行腳本之後。我注意到我的代碼只是一遍又一遍地重複第一頁數據。我還注意到,網站上的頁碼不是從1開始,而是從第10頁開始。我該如何解決從本網站提取數據並獲取全部內容的問題,而不是重複第一頁。使用蟒蛇和美麗的湯刮網絡重複數據4

import csv 
import codecs 
import requests 
from bs4 import BeautifulSoup 


courses_list= [] 
for i in range(10): 
    url = "http://sites.garmin.com/clsearch/courses?browse=1&country=US&lang=en&per_page={}".format(i) 
    r = requests.get(url) 

    soup = BeautifulSoup(r.content) 

    g_data2=soup.find_all("div",{"class":"result"}) 

    for item in g_data2: 
    try: 
     name= item.contents[3].find_all("div",{"class":"name"})[0].text 
     print name 
    except: 
     name='' 
    try: 
     address= item.contents[3].find_all("div",{"class":"location"})[0].text 
    except: 
     address='' 


    course=[name,address] 
    courses_list.append(course) 


with open ('G_Final.csv','a') as file: 
    writer=csv.writer(file) 
    for row in courses_list: 
     writer.writerow([s.encode("utf-8") for s in row]) 

回答

1

您發現了問題。

然後改變

url = "http://...?browse=1&country=US&lang=en&per_page={}".format(i) 

url = "http://...?browse=1&country=US&lang=en&per_page={}".format(i*20) 
+0

所以它仍然沒有保存權。我如何去獲取所有數據?有什麼建議麼? – Gonzalo68

+0

所以看起來我只是在設置範圍()時才從一個頁面獲取數據。關於如何循環獲取所有數據的任何建議。難道我做錯了什麼? – Gonzalo68