【发布时间】:2015-07-09 20:48:19
【问题描述】:
因此,我正在尝试从给定网站中提取高尔夫球场数据,在该网站中,它将创建一个包含名称和地址的 CSV。对于地址,虽然我从中获取数据的网站有
标记将其分开。是否可以将由
分隔的两个地址解析为两个单独的列?
所以它在 HTML 上看起来像这样
<div class="location">10799 E 550 S<br>Zionsville, Indiana, United States</div>
我希望它会被分解成
Column1:10799 E 550 S
Column2:Zionsville, Indiana, United States
这是我的代码:
import csv
import requests
from bs4 import BeautifulSoup
courses_list = []
with open('Garmin_GC.csv', 'w') as file:
writer = csv.writer(file)
for i in range(3): #893
url = "http://sites.garmin.com/clsearch/courses/search?course=&location=&country=US&state=&holes=&radius=&lang=en&search_submitted=1&per_page={}".format(
i * 20)
r = requests.get(url)
soup = BeautifulSoup(r.text)
g_data2 = soup.find_all("div", {"class": "result"})
for item in g_data2:
try:
name = item.find_all("div", {"class": "name"})[0].text
except IndexError:
name = ''
print "No Name found!"
try:
address = item.find_all("div", {"class": "location"})[0].get_text(separator=' ')
print address
except IndexError:
address = ''
print "No Address found!"
writer.writerow([name.encode("utf-8"), address.encode("utf-8")])
【问题讨论】:
标签: python beautifulsoup