我目前正在尝试让Scrapy在Google Cloud Function中运行。
from flask import escape
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
def hello_http(request):
settings = get_project_settings()
process = CrawlerProcess(settings)
process.crawl(BlogSpider)
process.start()
return 'Hello {}!'.format(escape("Word"))
这个方法可以用,但是很奇怪,并不总是有效。每隔一段时间,HTTP调用会返回一个错误,然后我可以在堆栈驱动器上阅读到:
函数执行花费了 509 ms,状态为:"崩溃"
我检查了蜘蛛,甚至简化了它,使其无法失败,例如:import scrapy
class BlogSpider(scrapy.Spider):
name = 'blogspider'
start_urls = ['https://blog.scrapinghub.com']
def parse(self, response):
yield { 'id': 1 }
有人能解释一下发生了什么吗?
可能是我达到了资源配额限制吗?
BlogSpider
在云函数中被使用在哪里了? - Dustin Ingram