Форум сайта python.su
Здравствуйте.
Возникла проблема: Написал скрипт, который отлично без сбоев работает на Windows (local), но при переезде на сервер скрипт ничего не записывает ни в базу, ни в csv. И главное - он молчит. Никаких ошибок.
Суть работы скрипта: скрипт выгружает из URL собсна url и проверяет их на индексируемость в Google с использованием случайного прокси и случайного user-agent. Потом сохраняет все в базу, в csv файл и делает небольшой отчет после n страниц.
Весь проект: https://www.dropbox.com/sh/h03rcy7dboeoev8/LuBJxTLdR6
Код: https://www.dropbox.com/s/y95e2v6rztbxa1c/google_search.py
Догадки и попытки решения: понятно, что проблема скорее всего в установленных модулях, но все переставлял - ноль эмоций.
Офлайн
from peewee import *
import peewee
ай ай плохой код линейка рука надо.
В мейн принты ставьте. Разбирайтесь до какого момента код работает.
Офлайн
PanovSergey
from peewee import *
import peewee
ай ай плохой код линейка рука надо.
Отредактировано Razor (Апрель 1, 2014 15:58:24)
Офлайн
Razor
Без “from peewee import *” не импортируется база данных, а без import peewee придется прописывать огромную кучу значений. Прежде, чем делать подобные замечания, сначала оцените значимость ваших замечаний. Играть на публику - не самая лучшая помощь человеку, который в ней нуждается.
то есть это нормально ? Эх не огребали вы ошибок когда один модуль дважды в память загружается. Если я пишу что так плохо то не из вредности, а потому что это приводит ко всяким нехорошим ошибкам. Не надо пользоваться wild import без особой необходимости, а если уж используете не надо еще отдельно модуль загружать.class Google(peewee.Model):
id = CharField(primary_key=True)
url = peewee.TextField()
value = peewee.CharField(max_length=4)
Офлайн
PanovSergey
то есть это нормально ? Эх не огребали вы ошибок когда один модуль дважды в память загружается. Если я пишу что так плохо то не из вредности, а потому что это приводит ко всяким нехорошим ошибкам. Не надо пользоваться wild import без особой необходимости, а если уж используете не надо еще отдельно модуль загружать.
Офлайн
RazorЯ конечно не эксперт по PyCharm, но он наверняка дальше одного уровня вложенности не видит. Модуль а импортирует модуль б в который импортирует с в котором есть совпадение по имени с а. Хрен отловишь такую ошибку. Импортируйте явно это всегда лучше. А еще есть такие приколы например вы используете точку расширения которая подключается при импорте модуля, но какой то умник в другом куске кода импортирует тот же модуль по другому пути в результате модуль загружается два раза соответственно расширение зарегистрируется два раза. Хотя.. пока сами не огребете не узнаете Поверьте на слово проще сразу перебдеть чем потом разгребать.
Грамотно именованные переменные, наличие проверки в PyCharm одинаковых имен в модулях - наше все.
Отредактировано PanovSergey (Апрель 1, 2014 17:13:40)
Офлайн
PanovSergey
Я конечно не эксперт по PyCharm, но он наверняка дальше одного уровня вложенности не видит. Модуль а импортирует модуль б в который импортирует с в котором есть совпадение по имени с а. Хрен отловишь такую ошибку. Импортируйте явно это всегда лучше. А еще есть такие приколы например вы используете точку расширения которая подключается при импорте модуля, но какой то умник в другом куске кода импортирует тот же модуль по другому пути в результате модуль загружается два раза соответственно расширение зарегистрируется два раза. Хотя.. пока сами не огребете не узнаете Поверьте на слово проще сразу перебдеть чем потом разгребать.
Офлайн
Razorстранно что никто не подтянулся, завтра запущу ваш код, там видно будет
В любом случае, по теме никакого прогресса)
Офлайн
#!/usr/bin/env python # *-* coding: utf-8 *-* from scrapy.selector import Selector from scrapy.http import Request from scrapy.spider import Spider "......"
Офлайн
> Возникла проблема: Написал скрипт, который отлично без сбоев работает на Windows (local), но при переезде на сервер скрипт ничего не записывает ни в базу, ни в csv. И главное - он молчит. Никаких ошибок.
Решение стандартное: разбираем программу дебагером с самого начала и ищем где она лажает. Можно ещё натыкать принтов в программу и в сорцы scrapy
Офлайн