爬取数据时出错:'EPollReactor'对象没有属性'_handleSignals'

问题描述 投票:0回答:1

我正在尝试从 URL 列表中抓取数据。我已经完成了下面的代码,昨天成功了,没有任何错误。

但是今天,当我回来再次运行代码时,出现了错误:“EPollReactor”对象没有属性“_handleSignals” The detailed error

下面是我的代码:

class MySpider(scrapy.Spider):
    name = 'myspider'
    def start_requests(self):
        urls = df['Link']
        for index, url in enumerate(urls):
          yield scrapy.Request(url=url, meta={'Index':index,'Item': ''})

    def parse(self, response):
        Item = response.meta['Item']
        Index = response.meta['Index']
        content = ''
        for para in response.css('p::text').extract():
            Item = Item + para
        df.loc[Index,"Content"] = Item

process = CrawlerProcess()
process.crawl(MySpider)
process.start()

我进行了搜索,但我并不完全理解这一点,所以我无法修复错误。你能帮我解决一下吗?

谢谢

scrapy web-crawler
1个回答
0
投票

你重新安装了scrapy吗?我今天遇到了同样的问题 - 我之前运行的代码给出了您所描述的错误。看起来该错误与 scrapy 的依赖项之一 Twisted 包有关。大约 4 小时前发布了 Twisted 软件包的新版本(版本 23.8.0),该软件包似乎与 scrapy 存在一些兼容性问题。如果您 pip install scrapy 并允许将 Twisted 作为依赖项安装,它将安装新版本并抛出此错误。我通过这样做解决了它

pip 安装 Twisted==22.10.0

安装 Twisted 的早期版本,它解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.