2016-05-20 5 views
0

Как кажется, это часто происходит здесь, я довольно новичок в Python 2.7 и Scrapy. В нашем проекте мы соскабливаем дату веб-сайта, следуя некоторым ссылкам и более соскабливаниям и так далее. Все это прекрасно работает. Затем я обновил Scrapy.Паук не запускается после обновления Scrapy

Теперь, когда я запускаю мой паук, я получаю следующее сообщение: enter image description here

Это не подходило в любом месте ранее (ни один из моих предыдущих сообщений об ошибках не смотрел ничего подобного). Теперь я запускаю scrapy 1.1.0 на Python 2.7. И ни один из пауков, которые ранее работали над этим проектом, не работает.

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

EDIT: ОК, так что этот код должен начинаться с первой страницы авторов для Дикин университета ученых на разговор, и пройти и скрести, сколько статей, которые они написали и замечания, которые они сделали.

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]) 

И в моих настройках, у меня есть:

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

DEPTH_LIMIT=1 
+0

Показать ваши файлы. Это типичная ошибка – Nabin

ответ

0

Видимо мой six.py файл был поврежден (или что-то в этом роде). После его замены с тем же файлом от коллеги он снова начал работать 8- \