Форум сайта python.su
0
Всем привет, уже запарился я тут со вчерашнего дня и никак не могу взять в толк как мне избавиться от ошибки которую получаю, сначала получал ошибку что, я выходил из диапазона значений при создании списка, теперь когда я создал нормально список pic, и пытаюсь записать значения списка в текстовый файл, получаю ошибку
#!/usr/local/bin/python3 import requests import re print ('Введите ссылку формата "https://habr.com/ru/post/349860/#Regulyarki":') url = input('') print ('Введенная ссылка:', url) def get_parsed_url(url): links = 0 pattern = r"(http[s]?://.*?[\s\?'\"])" #patternK = r"(/.*?jpg)" try: r = requests.get(url,params = None) links = r.content.decode('ISO-8859-1') parsedUrls = re.findall(pattern, links) except SystemError: print("Некорректная ссылка, повторите ввод") return (parsedUrls) def grooming(): pic = [] urlList = [] for i in get_parsed_url(url): urlList.append(i) patternList = r"['\"?]" patternPic = r"(http[s]?://.*(?:jpg|gif|png|jpeg))" key = 0 try: while key < len(urlList): urlList[key] = re.sub(patternList,'', urlList[key]) if re.findall(patternPic, urlList[key]): urlList[key] = str(re.findall(patternPic, urlList[key])) try: pic.append(urlList[key]) except IndexError: print() key +=1 except SystemError: print ("error") i = 0 file = open ('urls.txt', 'w') while i < len(pic): print(pic[i]) file.write(str(print(pic[i])) +'\n') i += 1 file.close() grooming()
Отредактировано Goldberg (Апрель 14, 2019 16:52:22)
Офлайн
4
with open('urls.txt','w') as f: f.write('\n'.join(pic))
Офлайн
0
vanvanovВ это термин я вкладываю понятие “Приведение в порядок”
P.S. Что такое grooming, по-Вашему?
Отредактировано Goldberg (Апрель 14, 2019 21:34:39)
Офлайн
4
GoldbergА-а, а то я думаю, причем тут уход за лошадьми
В это термин я вкладываю понятие “Приведение в порядок”
Но вообще лучше более конкретные названия давать, например, extract_pic.P.S. спасибо за помощь, я второй день мучаюсь. Вряд ли бы понял, где была ошибка. Я её не видел.Всегда разбивайте задачу на несколько маленьких задач. Пишите каждую отдельно и проверяйте результат у каждой. Так сразу будет понятно, где ошибка. Хорошо еще также освоить классы - они как раз помогают разбивать крупную операцию на несколько мелких.
КайфВы со смартфона пишите и какая-то программа вставляет спам? Или рекламируете табак? Меня в детстве сводили в музей, где показали легкие курильщика. Курить и не начинал
Офлайн
0
vanvanov
Вы со смартфона пишите и какая-то программа вставляет спам? Или рекламируете табак? Меня в детстве сводили в музей, где показали легкие курильщика. Курить и не начинал

Офлайн
4
Лучше бы здоровый образ жизни рекламировали
А наживаться за счет здоровья других людей… Как-то негуманно.
Офлайн
857
Goldberg
Вряд ли бы понял, где была ошибка. Я её не видел.
GoldbergНе сказал бы, что твой код хорошо структурирован.
До классов пока не добрался, сам уже начинаю конечно в своем написанном коде путаться
Отредактировано py.user.next (Апрель 15, 2019 01:32:06)
Офлайн