
Ivan
20.03.2017
18:32:24
правда return то можно делать один, а вот начинку оставить в if/else

Даниил
20.03.2017
20:33:59
Уряяя
http://vk.com/wall-38080744_49014
пайпай с 3.5 подъехал

Max
20.03.2017
20:53:20
Тупой вопрос: настраиваю сеттингс.ру в джанге, делаю python manage.py migrate
Все проходит норм, но лог говорит:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Вопрос: сохранились ли изменения в сеттингс.ру если они не высветились в списке миграций?

Google

b0g3r
20.03.2017
20:54:14
так
а как сеттингс.ру относится к миграциям?

Igor
20.03.2017
20:55:03
может ты прилоежния забыл перечислить в INSTALLED_APPS?

b0g3r
20.03.2017
20:55:19
ну и python manage.py migrate app же

Igor
20.03.2017
20:55:25
там вроде надо свои приложеньки перечислять

Max
20.03.2017
20:55:26
ну вот я иду по туториалу, там просят сделать это после того как ввел все данные по БД
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-django-with-postgres-nginx-and-gunicorn

Igor
20.03.2017
20:55:33
а, вот оно чо. да, мб и так

Max
20.03.2017
20:55:51
я нагуглил что syncdb уже нет и вместо него мигрейт заюзал сразу

b0g3r
20.03.2017
20:56:04
makemigrations исщё

Max
20.03.2017
20:56:15
разницу между мигрейт и мейкмигрейшенс вроде понимаю, но видимо не до конца
окай

b0g3r
20.03.2017
20:56:45
makemigrations находит изменения и создаёт файлы миграций
migrate - применяет миграции к базе

Google

Max
20.03.2017
20:57:24
хотя я прописал новый коннект к базе в settings.py
так, т.е. миграции вообще с сеттингс.ру не связаны?

b0g3r
20.03.2017
21:06:05
связаны - бд
но данные о том, применилась миграция или нет - хранятся в базе
в сеттингс они никак не записываются

тнн Itjunky
20.03.2017
22:25:50
Всем привет.
Получаю ошибку
UnboundLocalError: local variable 'title' referenced before assignment
Пытаюсь понять как её избежать. Переменная создаётся не при первом прогоне цикла, а использование идёт вне цикла
По логике цикл пробежался по всем элементам и хоть раз переменная долэжна была быть создана и следовательно, уже должна была появиться при выходе из цикла
Но почему-то вылазит ошибка

Igor
20.03.2017
22:28:59
покажи код

тнн Itjunky
20.03.2017
22:29:47
http://pastebin.com/mFh1Wh9W
Как-то так выглядит

Igor
20.03.2017
22:30:21
ну, значит нет совпадения по col-sm-7 col-lg-8
поставь перед циклом title = None

тнн Itjunky
20.03.2017
22:30:37
Хм

Igor
20.03.2017
22:30:50
точнее не перед циклом, а сразу после for attr in job.attrs
т.к. потом ты делаешь if title is not None внутри цикла for job in all_divs
вру
сразу ПЕРЕД for attr in job.attrs

Google

Igor
20.03.2017
22:31:28
так будет правильней
ну, либо допиши условие else: title = None
(относительно условия if 'col-sm-7 col-lg-8' in attr)

тнн Itjunky
20.03.2017
22:32:52
Это не совсем то что нужно, либо я не до конца понимаю как бьютифулсуп работает
Щас целиком покажу

Igor
20.03.2017
22:33:08
но поставить title = None в начале это одна строчка кода, а
else:
title = job.text
это две :)
да какая разница. либо bs4 найдет col-sm-7 col-lg-8 в атрибутах и выцепит оттуда job.text, либо не найдет и не выцепит

тнн Itjunky
20.03.2017
22:34:05
http://pastebin.com/RVvEgMrY

Igor
20.03.2017
22:34:11
при этом вряд ли, если текста нет, тебе вернется None. скорее вернется пустая строка

тнн Itjunky
20.03.2017
22:34:45
Получается, что при первых прогонах не заполняются все перменные?
Как-то постепенно это происходить чтоли?

Igor
20.03.2017
22:35:04
а, хм

тнн Itjunky
20.03.2017
22:35:16
На выходе ж должно получится полный набор переменных

Igor
20.03.2017
22:35:35
а покажи полный трейсбек который тебе возвращается
на какую именно строчку ругается
а, внизу, вижу

тнн Itjunky
20.03.2017
22:36:20
Ага

Igor
20.03.2017
22:36:30
ну видишь, теперь у тебя проблема не с title, а с amount
а где ты делаешь amount = None в начале? а нигде :)

тнн Itjunky
20.03.2017
22:36:50
Ну да, я то ожидаю, что на выходе из цикла все переменные будут заполнены

Google

Igor
20.03.2017
22:37:17
ну бля, значит, тебе возвращается такая страница, где нет элемента с атрибутами col-sm-1 amount title
смотри внимательно

тнн Itjunky
20.03.2017
22:37:29
получится, что if последний должен анализировать либо что все переменные не None, либо что последняя не None?
Как-то не изящно

Igor
20.03.2017
22:37:36
можешь поставить принты и выводить html-код

тнн Itjunky
20.03.2017
22:37:55
По идее ты можешь сам запустить код
Над тока обращение к БД закаментить

Igor
20.03.2017
22:38:03
мне лень!

Admin
ERROR: S client not available

тнн Itjunky
20.03.2017
22:38:05
=-)

Igor
20.03.2017
22:38:05
ну лан :(

тнн Itjunky
20.03.2017
22:38:42
from db import *
from common import job_exist
Вот это убрать и всё зарабоатет
Там даже принты тэгов дебажные есть, только закаменчены
В начале каждого фора

Igor
20.03.2017
22:40:30
какой ужас, второй питончик, старый бьютифулсуп
извините, это я так, ною, ща, подниму у себя все это говно и посмотрю

тнн Itjunky
20.03.2017
22:41:53
Ссори, я ниасилил пока полный переход =(
Что-то не заработало на третьем и я забил. Но уже не помню что.
Вроде другие сайты парсил и суп был понятен полностью. А тут, с этим сайтом, прямо мозг ломается при парсинге

Google

тнн Itjunky
20.03.2017
22:54:06
Хотя примерно понятно почему так. Один Job размазан по нескольким div

Igor
20.03.2017
22:58:07
http://pastebin.ca/3783874
че-т типа того
на всякую мелочь типа requests и bs4 забей
самое интересное в parse_category

тнн Itjunky
20.03.2017
23:00:30
Хммм, эт я перемудрил чтоли? =)

Igor
20.03.2017
23:00:42
чуть-чуть :)
ты проходился по всем-вообще-div'ам, это раз
всегда стоит более прицельно
ну и потом - по всем атрибутам тегов
хотя мог бы просто делать сразу find('tag', class_='class')
(кстати, у тебя там где-то и было find('tag', 'class')
не помню где
вот это можно было бы ко всему применить и было б ы проще :)

тнн Itjunky
20.03.2017
23:03:05
╰─>$ python2 ./parse_weblancer.py LA: 0.59
Traceback (most recent call last):
File "./parse_weblancer.py", line 85, in <module>
parse_category(admin_url, 'admin')
File "./parse_weblancer.py", line 24, in parse_category
all_jobs = soup.find('div', class_='page_body').findAll('div', class_='row')
AttributeError: 'NoneType' object has no attribute 'findAll'
А это из-за старой версии супа?

Igor
20.03.2017
23:03:59
не, это уже я накосячил где-то :)
видать, палить основное содержимое страницы по page_body было ошибкой :)
по какому урлу ты с этим сталкиваешься?

тнн Itjunky
20.03.2017
23:05:55
По тому же
https://github.com/itJunky/parselancer/blob/master/app/parse_freelansim.py
Вот тут я парсю примерно как ты предложил. Но с веблансером это не сработало и я начал мудрить.
admin_url = 'https://www.weblancer.net/jobs/administrirovanie-sajtov-6/'

Igor
20.03.2017
23:07:14
ммм, смотри
Эта группа больше не существует