【问题标题】:Spider won't run after updating Scrapy更新 Scrapy 后,Spider 不会运行
【发布时间】:2016-07-18 12:55:26
【问题描述】:

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

现在当我启动我的蜘蛛时,我收到以下消息:

这在之前的任何地方都没有出现(我之前的错误消息都不是这样的)。我现在在 Python 2.7 上运行 scrapy 1.1.0。并且之前在这个项目上工作的蜘蛛都没有工作。

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

编辑: 好的,所以这段代码应该从 Deakin 大学学者的 The Conversation 的第一作者页面开始,并浏览并抓取他们写了多少篇文章和他们制作了多少篇文章。

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

【问题讨论】:

  • 显示您的文件。这是拼写错误

标签: python-2.7 scrapy-spider


【解决方案1】:

显然我的 Six.py 文件已损坏(或类似情况)。用同事的同一个文件换掉后,它又开始工作了 8-\

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 2015-07-09
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2019-12-10
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多