Найти - Пользователи
Полная версия: Scrapy: Работает на localhost Windows, но не работает на сервере Ubuntu
Начало » Python для экспертов » Scrapy: Работает на localhost Windows, но не работает на сервере Ubuntu
1
Razor
Здравствуйте.

Возникла проблема: Написал скрипт, который отлично без сбоев работает на 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

Догадки и попытки решения: понятно, что проблема скорее всего в установленных модулях, но все переставлял - ноль эмоций.
PanovSergey
from peewee import *
import peewee
ай ай плохой код линейка рука надо.

В мейн принты ставьте. Разбирайтесь до какого момента код работает.
Razor
PanovSergey
from peewee import *
import peewee
ай ай плохой код линейка рука надо.

Без “from peewee import *” не импортируется база данных, а без import peewee придется прописывать огромную кучу значений. Прежде, чем делать подобные замечания, сначала оцените значимость ваших замечаний. Играть на публику - не самая лучшая помощь человеку, который в ней нуждается.

Насчет print - уже писал, проблема была в Request (не отправляло дальше). Думаю, что прокси, но не уверен.
PanovSergey
Razor
Без “from peewee import *” не импортируется база данных, а без import peewee придется прописывать огромную кучу значений. Прежде, чем делать подобные замечания, сначала оцените значимость ваших замечаний. Играть на публику - не самая лучшая помощь человеку, который в ней нуждается.
class Google(peewee.Model): 
id = CharField(primary_key=True)
url = peewee.TextField()
value = peewee.CharField(max_length=4)
то есть это нормально ? Эх не огребали вы ошибок когда один модуль дважды в память загружается. Если я пишу что так плохо то не из вредности, а потому что это приводит ко всяким нехорошим ошибкам. Не надо пользоваться wild import без особой необходимости, а если уж используете не надо еще отдельно модуль загружать.
Razor
PanovSergey
то есть это нормально ? Эх не огребали вы ошибок когда один модуль дважды в память загружается. Если я пишу что так плохо то не из вредности, а потому что это приводит ко всяким нехорошим ошибкам. Не надо пользоваться wild import без особой необходимости, а если уж используете не надо еще отдельно модуль загружать.

Грамотно именованные переменные, наличие проверки в PyCharm одинаковых имен в модулях - наше все.
PanovSergey
Razor
Грамотно именованные переменные, наличие проверки в PyCharm одинаковых имен в модулях - наше все.
Я конечно не эксперт по PyCharm, но он наверняка дальше одного уровня вложенности не видит. Модуль а импортирует модуль б в который импортирует с в котором есть совпадение по имени с а. Хрен отловишь такую ошибку. Импортируйте явно это всегда лучше. А еще есть такие приколы например вы используете точку расширения которая подключается при импорте модуля, но какой то умник в другом куске кода импортирует тот же модуль по другому пути в результате модуль загружается два раза соответственно расширение зарегистрируется два раза. Хотя.. пока сами не огребете не узнаете Поверьте на слово проще сразу перебдеть чем потом разгребать.
Razor
PanovSergey
Я конечно не эксперт по PyCharm, но он наверняка дальше одного уровня вложенности не видит. Модуль а импортирует модуль б в который импортирует с в котором есть совпадение по имени с а. Хрен отловишь такую ошибку. Импортируйте явно это всегда лучше. А еще есть такие приколы например вы используете точку расширения которая подключается при импорте модуля, но какой то умник в другом куске кода импортирует тот же модуль по другому пути в результате модуль загружается два раза соответственно расширение зарегистрируется два раза. Хотя.. пока сами не огребете не узнаете Поверьте на слово проще сразу перебдеть чем потом разгребать.

Вообще, в PyCharm проверка идет по всем модулям, но ваша идеология мне понятна и я несомненно с ней согласен. Обычно я всегда указываю классы и функции при импорте, но иногда это не сильно помогает (PyCharm при импорте всего модуля подсказывает, какие функции есть в модуле и с ними можно поиграться).

В любом случае, по теме никакого прогресса)
PanovSergey
Razor
В любом случае, по теме никакого прогресса)
странно что никто не подтянулся, завтра запущу ваш код, там видно будет
segey
#!/usr/bin/env python
# *-* coding: utf-8 *-* 
  
from scrapy.selector import Selector 
from scrapy.http import Request 
from scrapy.spider import Spider 
"......"
lorien
> Возникла проблема: Написал скрипт, который отлично без сбоев работает на Windows (local), но при переезде на сервер скрипт ничего не записывает ни в базу, ни в csv. И главное - он молчит. Никаких ошибок.

Решение стандартное: разбираем программу дебагером с самого начала и ищем где она лажает. Можно ещё натыкать принтов в программу и в сорцы scrapy
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB