Я пытаюсь получить информацию о поле для гольфа с веб-сайта thegolfcourse.net. Я намерен собрать с веб-сайта названия, адреса и номера телефонов более 18 000 полей для гольфа в США. Я запустил свой скрипт, но он не возвращает все данные с веб-сайта. Существует более 18 000 полей для гольфа, но я загружаю с сайта только около 200+ сайтов. Я не знаю, неправильный ли мой цикл или я не получаю доступ ко всем данным на основе моего кода, и, кроме того, в моих данных появляются пробелы, и мне интересно, как мне правильно извлечь данные.
Вот мой сценарий:
import csv
import requests
from bs4 import BeautifulSoup
courses_list = []
for i in range(56):
url="http://www.thegolfcourses.net/page/{}?l ... .format(i)
r = requests.get(url)
soup = BeautifulSoup(r.content)
g_data2=soup.find_all("article")
for item in g_data2:
try:
name = item.contents[5].find_all("a")[0].text
print name
except:
name=''
try:
phone= item.contents[13].find_all("p",{"class":"listing-phone"})[0].text
except:
phone=''
try:
address= item.contents[13].find_all("p",{"class":"listing-address"})[0].text
except:
address=''
course=[name,phone,address]
courses_list.append(course)
with open ('PGN.csv','a') as file:
writer=csv.writer(file)
for row in courses_list:
writer.writerow([s.encode("utf-8") for s in row])
Подробнее здесь: https://stackoverflow.com/questions/311 ... ing-python