Python 刮削网站只提供部分或随机数据到CSV

Python 刮削网站只提供部分或随机数据到CSV,python,csv,web-scraping,Python,Csv,Web Scraping,我正在尝试使用下面的脚本从Garmin网站提取高尔夫球场名称和地址列表 import csv import requests from bs4 import BeautifulSoup courses_list= [] for i in range(893): #893 url = "http://sites.garmin.com/clsearch/courses?browse=1&country=US&lang=en&per_page={}".format(i

我正在尝试使用下面的脚本从Garmin网站提取高尔夫球场名称和地址列表

import csv
import requests 
from bs4 import BeautifulSoup


courses_list= []
for i in range(893): #893
  url = "http://sites.garmin.com/clsearch/courses?browse=1&country=US&lang=en&per_page={}".format(i*20)
  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 ('PGA_Garmin2.csv','a') as file:
        writer=csv.writer(file)
        for row in courses_list:
                writer.writerow([s.encode("utf-8") for s in row])

在运行脚本之后,我最终无法获得所需的完整数据,而且在执行时,它会生成随机值,而不是完整的数据集。我需要从893页中提取信息,并得到至少18000页的列表,但运行此脚本后,我只得到122页。如何修复此脚本以从Garmin网站获取完整的数据集,并使用高尔夫球场的完整数据集生成所需的CSV。我更正了页码,以反映Garmin网站中设置的页面,页面从20开始,以此类推。

这里只是猜测一下,但请检查您的r.状态并确认它是200?可能你没有访问整个网站


暗中捅一刀。

我该怎么检查呢。我认为这不是访问整个网站,只是产生一些数据。你能提供一个可以检查的脚本吗?@Gonzalo68你不需要脚本。如果r.status==200:打印“OK”