Spyder 中的问题 运行 网络抓取工具 IDE
Problems running web scraper in Spyder IDE
我有一个使用 Scrpay 框架的代码,这是代码
import scrapy
from scrapy.crawler import CrawlerProcess
class DemoSpider(scrapy.Spider):
name = "DemoSpider"
def start_requests(self):
urls = ['http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/']
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split('/')[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved File %s' % filename)
process = CrawlerProcess()
process.crawl(DemoSpider)
process.start()
当 运行从终端 (Windows 10 PowerShell) python demo.py
宁时,代码运行良好。
但是我需要 运行 使用 Spyder IDE 的代码。尝试时出现这样的错误
ReactorBase.startRunning(self)
File "C:\ProgramData\Anaconda3\lib\site-packages\twisted\internet\base.py", line 765, in startRunning
raise error.ReactorNotRestartable()
ReactorNotRestartable
(这里是 Spyder 维护者)请转到菜单 Run > Configuration per file
并激活选项 Execute in an external system terminal
。
这将 运行 您的代码在常规 Python 解释器中,这将避免您必须启动服务器的问题,运行 是我们 IPython控制台。
我有一个使用 Scrpay 框架的代码,这是代码
import scrapy
from scrapy.crawler import CrawlerProcess
class DemoSpider(scrapy.Spider):
name = "DemoSpider"
def start_requests(self):
urls = ['http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/']
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split('/')[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved File %s' % filename)
process = CrawlerProcess()
process.crawl(DemoSpider)
process.start()
当 运行从终端 (Windows 10 PowerShell) python demo.py
宁时,代码运行良好。
但是我需要 运行 使用 Spyder IDE 的代码。尝试时出现这样的错误
ReactorBase.startRunning(self)
File "C:\ProgramData\Anaconda3\lib\site-packages\twisted\internet\base.py", line 765, in startRunning
raise error.ReactorNotRestartable()
ReactorNotRestartable
(这里是 Spyder 维护者)请转到菜单 Run > Configuration per file
并激活选项 Execute in an external system terminal
。
这将 运行 您的代码在常规 Python 解释器中,这将避免您必须启动服务器的问题,运行 是我们 IPython控制台。