2016-08-04 27 views
0

laufen i auf Server-Seite wanna kriecht, aber mein Python es so gut isnt ...Scrapy auf Terminal-Server

meine Quelle funktioniert so gut ist, wenn ich es auf Meinlaptop Terminal laufen, aber es war falsch läuft beim Laufen es auf Server-Terminal

hier meine Quellcode

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) 

die falsche Linie, sagte

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' 

weiß jemand, wie man es mattieren kann? danke viel vorher :)

Antwort

0

Scheint wie Ihre scrapy Version veraltet ist. scrapy.Selector Methode wurde nur in Scrapy 1.1 hinzugefügt, also möchten Sie das Scrapy-Paket auf Ihrem Server aktualisieren.

+0

Kumpel ich versuche --upgrade scrapy_ pip installieren _sudo und bekam ** Rollback Deinstallation von lxml Command "/ usr/bin/python -u -c" import Setuptools führen, tokenize; __ __ Datei = '/ tmp/pip-build-WJUVpy/lxml/setup.py '; exec (kompilieren (getattr (tokenize,' öffnen ', öffnen) (__ file __) .lesen(). replace (' \ r \ n ',' \ n '), __file__, 'exec')) "install --record /tmp/pip-yn9nU9-record/install-record.txt --single-version-extern-managed --compile" fehlgeschlagen mit Fehlercode 1 in/tmp/pip-build-WJUVpy/lxml/** Kannst du mir einen anderen Vorschlag geben, Kumpel? – jethow

+0

@jethow Worum handelt es sich bei der Distribution, auf der der Server ausgeführt wird? Auf Ubuntu können Sie einfach versuchen, "Python-Scrapy zu installieren", Version 1.1 sollte in Ubuntu Repos sein. – Granitosaurus

+0

Ich benutze Ubuntu 14.04.4 Kumpel, ich habe es versucht ... es sagt _E: Kann Paket Scrapy_ nicht lokalisieren – jethow