Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2015, 22:55   #1
Крисс
 
Регистрация: 13.02.2015
Сообщений: 3
Вопрос Regex в Python для поиска URL

Всем привет!

Нужна помощь с regex в одной программе в Python. Суть такова: в файл с веб-страницы были записаны данные о каждом городе/области в стране с ссылками на xml-файлы с данными о погоде.
Для каждого города данные выглядят таким образом(элементы в файле разделены табами и новой строкой по окончанию данных для одного обьекта):
101 Brekke 56 Sluse Sluse Lock Halden Østfold 59.14785 11.55603 http://www.yr.no/stad/Noreg/Østfold/...224/varsel.xml http://www.yr.no/sted/Norge/Østfold/...224/varsel.xml http://www.yr.no/place/Norway/Østfol...4/forecast.xml

Смысл задания в том, чтобы написать метод, который для указанного города находил бы(используя regex) и возвращал лист со ссылками для этого города, которые заканчиваются только на "/forecast.xml" (т.е. "/varsel.xml" не подходят).

Мой метод таков:

Код:
dataList = []

def getLinksForLocation(location):
    with open('helpFile', 'r') as searchfile:
        sfile = searchfile.readlines()
        for line in sfile:
            line.split('\t')[12]
            if location in line.split('\t')[1]:
                links = re.findall(r'(http://www.yr.no/\S+\/forecast.xml)', line)
                dataList.append(links)
    print dataList
    return dataList

getLinksForLocation('Asak kirke')
Сейчас программа выдаёт лист с правильными ссылками для этого города,но этот лист выписывается очень большое количество раз.

Regex для меня в новинку и я, к сожалению, не могу продвинуться дальше уже несколько дней. Бесконечная благодарность и лучи добра любому, кто сможет помочь советом!

Последний раз редактировалось BDA; 26.09.2015 в 01:26.
Крисс вне форума Ответить с цитированием
Старый 26.09.2015, 01:55   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Не силен в питоне и регэкспах. Такой вариант подойдет? (в работоспособности не уверен )
Код:
import re

def getLinksForLocation(location):
    return re.findall(r'\d+\t' + location + '.+(\[url\]http:\/\/www\.yr\.no\/\S+\/forecast\.xml\[\/url\])', ''.join(open('helpFile', 'r').readlines()))

print getLinksForLocation('Asak kirke')
print getLinksForLocation('Brekke')
Цитата:
Сообщение от Крисс Посмотреть сообщение
...но этот лист выписывается очень большое количество раз.
Вот эту фразу не очень понял.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 26.09.2015 в 02:00.
BDA на форуме Ответить с цитированием
Старый 27.09.2015, 23:01   #3
Крисс
 
Регистрация: 13.02.2015
Сообщений: 3
По умолчанию

Вы были близки! Но в итоге мне всё равно пришлось реструктурировать код.
В любом случае спасибо, что откликнулись!
Крисс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
для чего нужен альтернативный URL turba007 Помощь студентам 0 23.02.2013 20:12
макрос для поиска позиций и вывода данных на лист поиска mr-111 Microsoft Office Excel 12 13.03.2012 15:03
Python + URL DreadlockEugene Python 6 20.04.2011 05:13
Графический интерфейс для Python anyx Софт 2 09.12.2010 19:06