Comment puis-je boucle en raclant les données de plusieurs pages dans un site web à l'aide de python et beautifulsoup4

Je suis en train de recueillir des données à partir de la PGA.com site web pour obtenir une table de tous les terrains de golf aux États-unis. Dans mon CSV tableau je veux inclure le Nom du terrain de golf ,l'Adresse ,la Propriété ,Site web , numéro de Téléphone. Avec ces données, je voudrais de géocodage et de le placer dans une carte, et une copie en local sur mon ordinateur

J'ai utilisé Python et Belle Soup4 pour extraire mes données. J'ai atteint jusqu'à en extraire les données et les importer dans un fichier CSV, mais je suis maintenant avoir un problème de grattage de données à partir de plusieurs pages sur le site de la PGA. Je veux extraire TOUS LES terrains de GOLF, mais mon script est limité à une seule page, je veux une boucle dans la suite qu'il s'agira de saisir toutes les données pour les terrains de golf à partir de toutes les pages du site de la PGA. Il y a environ 18000 cours de l'or et de 900 pages de capture de données

Joint ci-dessous mon script. J'ai besoin d'aide sur la création de code qui permettra de saisir TOUTES les données de la PGA site web, et pas seulement un site, mais plusieurs. De cette manière elle va me fournir avec toutes les données de l'or en cours aux Etats-unis.

Voici mon script ci-dessous:

import csv
import requests 
from bs4 import BeautifulSoup
url = "http://www.pga.com/golf-courses/search?searchbox=Course+Name&searchbox_zip=ZIP&distance=50&price_range=0&course_type=both&has_events=0"
r = requests.get(url)
soup = BeautifulSoup(r.content)
g_data1=soup.find_all("div",{"class":"views-field-nothing-1"})
g_data2=soup.find_all("div",{"class":"views-field-nothing"})
courses_list=[]
for item in g_data2:
try:
name=item.contents[1].find_all("div",{"class":"views-field-title"})[0].text
except:
name=''
try:
address1=item.contents[1].find_all("div",{"class":"views-field-address"})[0].text
except:
address1=''
try:
address2=item.contents[1].find_all("div",{"class":"views-field-city-state-zip"})[0].text
except:
address2=''
try:
website=item.contents[1].find_all("div",{"class":"views-field-website"})[0].text
except:
website=''   
try:
Phonenumber=item.contents[1].find_all("div",{"class":"views-field-work-phone"})[0].text
except:
Phonenumber=''      
course=[name,address1,address2,website,Phonenumber]
courses_list.append(course)
with open ('filename5.csv','wb') as file:
writer=csv.writer(file)
for row in courses_list:
writer.writerow(row)    
#for item in g_data1:
#try:
#print item.contents[1].find_all("div",{"class":"views-field-counter"})[0].text
#except:
#pass  
#try:
#print item.contents[1].find_all("div",{"class":"views-field-course-type"})[0].text
#except:
#pass
#for item in g_data2:
#try:
#print item.contents[1].find_all("div",{"class":"views-field-title"})[0].text
#except:
#pass
#try:
#print item.contents[1].find_all("div",{"class":"views-field-address"})[0].text
#except:
#pass
#try:
#print item.contents[1].find_all("div",{"class":"views-field-city-state-zip"})[0].text
#except:
#pass

Ce script permet de saisir seulement 20 à un moment et j'ai envie de capturer le tout dans un script qui compte pour 18000 terrains de golf et de 900 pages à gratter de la forme.

OriginalL'auteur Gonzalo68 | 2015-06-25