网上查了一下,并没有完全讲在java中调用Scrapy框架执行爬虫的示例,其实很简单,了解一下。
前提:
scrapy程序,scrapy运行脚本:
scrapy执行脚本如下(名称为:start.py):
from scrapy import cmdline
cmdline.execute("scrapy crawl 名称 -s LOG_FILE=xx.log".split())
#或者
#cmdline.execute("scrapy crawl 名称".split())
java调用python有好多种方法,本人为了避免导包的麻烦,选择使用Runtime.exec 进行调用python。
调用主要命令如下:
//python脚本的路径
String executePath = path + "\\start.py";
//执行命令Arr
String[] cmdArr = new String[]{"python",executePath};
//参数分别为: 执行命令;执行此脚本的路径
Process process = Runtime.getRuntime().exec(cmdArr,null,new File(path));
接收scrapy中的print打印:
InputStream inputStream = process.getInputStream();
byte[] b = new byte[1024];
while (inputStream.read(b) != -1) {
writeFilePath = new String(b);
}
//返回linux执行状态码,0为执行正常
int statusNum = process.waitFor();
inputStream.close();
详细可以了解一下Runtime方法。