@python_beginnersЭта группа больше не существует

Страница 1423 из 1885
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
Ссори, я ниасилил пока полный переход =(

Что-то не заработало на третьем и я забил. Но уже не помню что.

Вроде другие сайты парсил и суп был понятен полностью. А тут, с этим сайтом, прямо мозг ломается при парсинге

получится, что if последний должен анализировать либо что все переменные не None, либо что последняя не None?
Вот такой вариант с проверкой, что date is not None работает. Но блин, не красиво это как-то и не очевидно...

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
ммм, смотри

Страница 1423 из 1885

Эта группа больше не существует Эта группа больше не существует