我试图提取一个高尔夫球场的名称和地址从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.status
并确认它是200
?可能你没有访问整个网站?你知道吗在黑暗中刺。你知道吗
相关问题 更多 >
编程相关推荐