Я создал скрипт с BeautifulSoup, который отлично работает и очень читабелен, но я хочу однажды перераспределить его, и BeautifulSoup - это внешняя зависимость, которую я хотел бы избежать, особенно учитывая использование Windows.
Вот код, он получает каждую ссылку на пользовательскую карту от данного пользователя карт Google. ####### отмечены строки, использующие BeautifulSoup:
# coding: utf-8
import urllib, re
from BeautifulSoup import BeautifulSoup as bs
uid = '200931058040775970557'
start = 0
shown = 1
while True:
url = 'http://maps.google.com/maps/user?uid='+uid+'&ptab=2&start='+str(start)
source = urllib.urlopen(url).read()
soup = bs(source) ####
maptables = soup.findAll(id=re.compile('^map[0-9]+$')) #################
for table in maptables:
for line in table.findAll('a', 'maptitle'): ################
mapid = re.search(uid+'\.([^"]*)', str(line)).group(1)
mapname = re.search('>(.*)</a>', str(line)).group(1).strip()[:-3]
print shown, mapid, '\t', mapname
shown += 1
urllib.urlretrieve('http://maps.google.com.br/maps/ms?msid=' + uid + '.' + str(mapid) +
'&msa=0&output=kml', mapname + '.kml')
if '<span>Next</span>' in str(source):
start += 5
else:
break
Как вы можете видеть, есть только три строки кода, использующие BSoup, но я не программист, и у меня возникли большие трудности при попытке использовать другие стандартные инструменты синтаксического анализа HTML и XML, вероятно, потому что я пробовал неправильный путь, Я думаю.
РЕДАКТИРОВАТЬ: Этот вопрос больше относится к замене трех строк кода этого скрипта, чем к поиску способа решения типичных проблем с синтаксическим анализом HTML.
Любая помощь будет высоко ценится, спасибо за чтение!