2016-08-04 1 views
0

я хочу ползать на стороне сервера, но мой питон оно не так хорошо ...работает Scrapy на сервере терминалов

мой источник работает так хорошо, если я запустить его на mylaptop терминале, но это происходит не так, когда работает это на сервере терминала

здесь мой исходный код

from scrapy.spider import BaseSpider 
from scrapy.selector import HtmlXPathSelector 
from thehack.items import NowItem 
import time 

class MySpider(BaseSpider): 
    name = "nowhere" 
    allowed_domains = ["n0where.net"] 
    start_urls = ["https://n0where.net/"] 

    def parse(self, response): 
     for article in response.css('.loop-panel'): 
      item = NowItem() 
      item['title'] = article.css('.article-title::text').extract_first() 
      item['link'] = article.css('.loop-panel>a::attr(href)').extract_first() 
      item['body'] ='' .join(article.css('.excerpt p::text').extract()).strip() 
      #date ga kepake 
      #item['date'] = article.css('[itemprop="datePublished"]::attr(content)').extract_first() 
      yield item 
      time.sleep(5) 

неправильная линия сказал

ERROR: Spider error processing <GET https://n0where.net/> 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent 
    call.func(*call.args, **call.kw) 
    File "/usr/lib/python2.7/dist-packages/twisted/internet/task.py", line 638, in _tick 
    taskObj._oneWorkUnit() 
    File "/usr/lib/python2.7/dist-packages/twisted/internet/task.py", line 484, in _oneWorkUnit 
    result = next(self._iterator) 
    File "/usr/local/lib/python2.7/dist-packages/scrapy/utils/defer.py", line 57, in <genexpr> 
    work = (callable(elem, *args, **named) for elem in iterable) 
--- <exception caught here> --- 
    File "/usr/local/lib/python2.7/dist-packages/scrapy/utils/defer.py", line 96, in iter_errback 
    yield next(it) 
    File "/usr/local/lib/python2.7/dist-packages/scrapy/contrib/spidermiddleware/offsite.py", line 26, in process_spider_output 
    for x in result: 
    File "/usr/local/lib/python2.7/dist-packages/scrapy/contrib/spidermiddleware/referer.py", line 22, in <genexpr> 
    return (_set_referer(r) for r in result or()) 
    File "/usr/local/lib/python2.7/dist-packages/scrapy/contrib/spidermiddleware/urllength.py", line 33, in <genexpr> 
    return (r for r in result or() if _filter(r)) 
    File "/usr/local/lib/python2.7/dist-packages/scrapy/contrib/spidermiddleware/depth.py", line 50, in <genexpr> 
    return (r for r in result or() if _filter(r)) 
    File "/home/admin/nowhere/thehack/spiders/thehack_spider.py", line 14, in parse 
    item['title'] = article.css('.article-title::text').extract_first() 
exceptions.AttributeError: 'SelectorList' object has no attribute 'extract_first' 

Кто-нибудь знает, как исправить это мат? большое спасибо :)

ответ

0

Похоже, что ваша версия для лечения отброса устарела. scrapy.Selector метод .extract_first() был добавлен только в scrapy 1.1, поэтому вы хотите обновить пакет терапии на своем сервере.

+0

мата я пытаюсь _sudo пипа установить --upgrade scrapy_ и получил результат ** Отката деинсталяции LXML Command "/ USR/бен/питон -u -c" импорт Setuptools, разметить; __ __ Файл = '/ tmp/pip-build-WJUVpy/lxml/setup.py '; exec (компиляция (getattr (tokenize,' open ', open) (__ file __). read(). replace (' \ r \ n ',' \ n '), __file__, 'exec')) "install -record /tmp/pip-yn9nU9-record/install-record.txt --s-version-external-managed -compile" не удалось с кодом ошибки 1 в/tmp/pip-build-WJUVpy/lxml/** Можете ли вы дать мне другое предложение? – jethow

+0

@jethow, в чем дистрибутив вашего сервера работает? На ubuntu вы можете просто попробовать «apt install python-scrapy», версия 1.1 должна быть в репозиториях ubuntu. – Granitosaurus

+0

Я использую ubuntu 14.04.4 mate, я попробовал ... его говорит _E: Не удалось найти пакет Scrapy_ – jethow