0
我想通過this link來提取美國所有高爾夫球場的清單。我需要提取高爾夫球場的名稱,地址和電話號碼。我的腳本假設從網站中提取所有數據,但它看起來只能在我的csv文件中打印一行。我注意到,當我打印「名稱」字段時,儘管有find_all
函數,但它僅打印一次。我需要的只是數據,而不僅僅是來自網站上多個鏈接的一個字段。網站刮後只寫了一行
如何解決我的腳本問題,以便將所有需要的數據打印到CSV文件中。
這裏是我的腳本:
import csv
import requests
from bs4 import BeautifulSoup
courses_list = []
for i in range(1):
url="http://www.thegolfcourses.net/page/1?ls&location=California&orderby=title&radius=6750#038;location=California&orderby=title&radius=6750" #.format(i)
r = requests.get(url)
soup = BeautifulSoup(r.content)
g_data2=soup.find_all("div",{"class":"list"})
for item in g_data2:
try:
name= item.contents[7].find_all("a",{"class":"entry-title"})[0].text
print name
except:
name=''
try:
phone= item.contents[7].find_all("p",{"class":"listing-phone"})[0].text
except:
phone=''
try:
address= item.contents[7].find_all("p",{"class":"listing-address"})[0].text
except:
address=''
course=[name,phone,address]
courses_list.append(course)
with open ('PGN_Final.csv','a') as file:
writer=csv.writer(file)
for row in courses_list:
writer.writerow([s.encode("utf-8") for s in row])
您的縮進遍佈整個地方,發佈的代碼甚至不會執行。正如所寫的,'courses_list.append()'調用*完全在'g_data2'循環中的'for item之外,因此只會執行一次,但由於其他縮進也是一團糟,所以我無法確定如果這是你的問題。 –
我對此表示抱歉。 – Gonzalo68
在那個頁面上只有一個這樣的'div'。 –