2016-05-20 8 views
0

Wie es scheint hier häufig passieren, bin ich ziemlich neu in Python 2.7 und Scrapy. Unser Projekt hat uns das Website-Datum gekratzt, einigen Links gefolgt und mehr Scraping, und so weiter. Das war alles in Ordnung. Dann habe ich Scrapy aktualisiert.Spider wird nach der Aktualisierung von Scrapy nicht laufen

Nun, wenn ich meine Spinne starten, erhalte ich die folgende Meldung: enter image description here

Dies war nicht vorher überall kommen (keine meiner früheren Fehlermeldungen alles so aussah). Ich laufe jetzt scrapy 1.1.0 auf Python 2.7. Und keine der Spinnen, die vorher an diesem Projekt gearbeitet haben, funktionieren.

Ich kann bei Bedarf Beispielcode bereitstellen, aber mein (zugegebenermaßen begrenztes) Wissen über Python legt mir nahe, dass es nicht einmal zu meinem Skript kommt, bevor ich es ausbomben kann.

EDIT: OK, so dass dieser Code soll auf der ersten Autoren-Seite für Deakin University Wissenschaftler auf das Gespräch beginnen, und gehen Sie durch und kratzen, wie viele Artikel sie geschrieben haben und Kommentare sie gemacht haben.

import scrapy 
from ltuconver.items import ConversationItem 
from ltuconver.items import WebsitesItem 
from ltuconver.items import PersonItem 
from scrapy import Spider 
from scrapy.selector import Selector 
from scrapy.http import Request 
import bs4 

class ConversationSpider(scrapy.Spider): 
name = "urls" 
allowed_domains = ["theconversation.com"] 
start_urls = [ 
    'http://theconversation.com/institutions/deakin-university/authors'] 


#URL grabber 
def parse(self, response): 
    requests = [] 
    people = Selector(response).xpath('///*[@id="experts"]/ul[*]/li[*]') 
    for person in people: 
     item = WebsitesItem() 
     item['url'] = 'http://theconversation.com/'+str(person.xpath('a/@href').extract())[4:-2] 
     self.logger.info('parseURL = %s',item['url']) 
     requests.append(Request(url=item['url'], callback=self.parseMainPage)) 

    soup = bs4.BeautifulSoup(response.body, 'html.parser') 
    try:   
     nexturl = 'https://theconversation.com'+soup.find('span',class_='next').find('a')['href'] 
     requests.append(Request(url=nexturl)) 
    except: 
     pass 
    return requests 

#go to URLs are grab the info 
def parseMainPage(self, response): 
    person = Selector(response) 
    item = PersonItem() 
    item['name'] = str(person.xpath('//*[@id="outer"]/header/div/div[2]/h1/text()').extract())[3:-2] 
    item['occupation'] = str(person.xpath('//*[@id="outer"]/div/div[1]/div[1]/text()').extract())[11:-15] 
    item['art_count'] = int(str(person.xpath('//*[@id="outer"]/header/div/div[3]/a[1]/h2/text()').extract())[3:-3]) 
    item['com_count'] = int(str(person.xpath('//*[@id="outer"]/header/div/div[3]/a[2]/h2/text()').extract())[3:-3]) 

Und in meinen Einstellungen, die ich habe:

BOT_NAME = 'ltuconver' 
SPIDER_MODULES = ['ltuconver.spiders'] 
NEWSPIDER_MODULE = 'ltuconver.spiders' 

DEPTH_LIMIT=1 
+0

Zeigen Sie Ihre Dateien. Dies ist ein Tippfehler – Nabin

Antwort

0

Anscheinend meine six.py Datei beschädigt war (oder so ähnlich). Nach dem Auslagern mit der gleichen Datei von einem Kollegen, fing es wieder an zu arbeiten. 8- \

Verwandte Themen