我正在尝试从此YouTube视频中学习python:https://www.youtube.com/watch?v=RrPZza_vZ3w
在视频中,他们为观众提供了一个可以运行的脚本:
">>> import urllib"
">>> u = urllib.urlopen('http://ctabustracker.com/bustime/map/getBusesForRoute.jsp?route=22')"
">>> data = u.read()"
">>> f = open('rt22.xml','wb')"
">>> f.write(data)"
">>> f.close()"
从网站提取数据并将其保存在xml文件中。但是当我检查xml文件时,我只得到这个:XML解析错误:找不到元素
答案 0 :(得分:0)
我很确定这是视频所需的所有代码,它可能有助于作为参考。
import urllib
import webbrowser
import time
from xml.etree.ElementTree import parse
u = urllib.urlopen("http://ctabustracker.com/bustime/map/getBusesForRoute.jsp?route=22")
data = u.read()
with open("rt22.xml", "wb") as f:
f.write(data)
f.close()
office_lat = 41.980262
doc = parse("rt22.xml")
def distance(lat1, lat2):
'Return approx miles between lat1 and lat2'
return 69 * abs(lat1 - lat2)
def check_bus_location():
for bus in doc.findall("bus"):
if bus.findtext("lat") >= office_lat:
latitude = float(bus.findtext("lat"))
longitude = float(bus.findtext("lon"))
bus_id = (bus.findtext("id"))
direction = bus.findtext("d")
north_buses = [[bus_id, latitude, longitude]]
if direction.startswith("North"):
print('%s %s %0.2f miles' % (bus_id, direction, distance(latitude, office_lat)))
for bus in north_buses:
if distance(float(latitude), office_lat) < 0.5:
print(webbrowser.open(
'http://maps.googleapis.com/maps/api/staticmap?size=500x500&sensor=false&markers=|%f,%f' % (
latitude, longitude)))
while True:
check_bus_location()
time.sleep(10)