【发布时间】:2020-09-26 12:23:36
【问题描述】:
我想从 python 脚本运行我的爬虫。 我可以使用以下代码调用我的蜘蛛,
subprocess.check_output(['scrapy crawl mySpider'])
直到一切都好。但在此之前,我通过初始化 start_urls 来实例化我的蜘蛛类,然后调用 scrapy crawl 不起作用,因为它没有找到变量 start_urls。
from flask import Flask, jsonify, request
import scrapy
import subprocess
class ClassSpider(scrapy.Spider):
name = 'mySpider'
#start_urls = []
#pages = 0
news = []
def __init__(self, url, nbrPage):
self.pages = nbrPage
self.start_urls = url
def parse(self):
...
def run(self):
subprocess.check_output(['scrapy crawl mySpider'])
return self.news
app = Flask(__name__)
data = []
@app.route('/', methods=['POST'])
def getNews():
mySpiderClass = ClassSpider(request.json['url'], 2)
data.append(mySpider.run())
return jsonify({'data': data})
if __name__ == "__main__":
app.run(debug=True)
我得到的错误是: 类型错误:init 缺少 1 个必需的位置参数:“start_url”和“pages”
有什么帮助吗?
【问题讨论】: