更新Scrapy后,Spider将无法运行

时间:2016-05-20 06:36:45

标签: python-2.7 scrapy-spider

正如在这里经常发生的那样,我对Python 2.7和Scrapy都很陌生。我们的项目让我们抓取网站日期,遵循一些链接和更多的抓取,等等。这一切都很好。然后我更新了Scrapy。

现在当我启动蜘蛛时,我收到以下消息: enter image description here

之前的任何地方都没有出现(我以前的错误消息都没有看起来像这样)。我现在在Python 2.7上运行scrapy 1.1.0。以前参与过这个项目的蜘蛛都没有工作。

如果需要的话,我可以提供一些示例代码,但我的(普遍有限的)Python知识告诉我,它甚至在轰炸之前都没有进入我的脚本。

修改 好的,所以这段代码应该从Deakin大学学术论者的第一作者页面开始,并通过并撰写他们撰写的文章和评论。

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

1 个答案:

答案 0 :(得分:0)

显然我的six.py文件已损坏(或类似的东西)。在与同事交换相同文件后,它再次开始工作8 - \