flask跟scrapy配合写接口
要将Flask和Scrapy配合编写接口,可以按照以下步骤进行:
- 首先,安装Flask和Scrapy库。可以使用pip命令安装:
pip install flask scrapy
- 创建一个Flask应用程序,用于处理接口请求。可以创建一个名为
app.py的文件,并添加以下内容:
from flask import Flask, jsonify
from flask_cors import CORS
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from myproject.spiders.myspider import MySpider
app = Flask(__name__)
CORS(app)
@app.route('/api/data', methods=['GET'])
def get_data():
process = CrawlerProcess(get_project_settings())
process.crawl(MySpider)
process.start()
# 从爬虫的输出文件中读取数据
with open('data.json', 'r') as file:
data = file.read()
return jsonify(data)
if __name__ == '__main__':
app.run()
在上面的代码中,我们创建了一个基本的Flask应用程序。get_data函数是一个接口路由,当收到/api/data的GET请求时,它将启动Scrapy爬虫并从爬虫的输出文件中读取数据,然后将数据以JSON格式返回。
- 创建一个Scrapy爬虫,用于抓取数据并将其输出到文件中。可以在Scrapy项目中的
spiders目录下创建一个名为myspider.py的文件,并添加以下内容:
import scrapy
import json
class MySpider(scrapy.Spider):
name = 'myspider'
allowed_domains = ['example.com']
start_urls = ['http://example.com/data']
def parse(self, response):
# 解析数据并保存到文件中
data = {
'key1': 'value1',
'key2': 'value2',
}
with open('data.json', 'w') as file:
file.write(json.dumps(data))
在上面的代码中,我们创建了一个简单的Scrapy爬虫。在parse方法中,我们解析了网页的数据,并将其保存到名为data.json的文件中。
- 启动Flask应用程序。在命令行中执行以下命令:
python app.py
现在,Flask应用程序将会运行在本地的5000端口上。当访问http://localhost:5000/api/data时,它将启动Scrapy爬虫并返回爬取的数据。
注意:在实际应用中,可能需要根据具体情况进行配置和改进。上述代码只是一个简单的示例,供参考
原文地址: https://www.cveoy.top/t/topic/iJDP 著作权归作者所有。请勿转载和采集!