scrapy实战之scrapyrt的使用
scrapyrt为scrapy提供了一个http接口,有了它,我们不用再执行命令,而是直接请求一个http接口来启动项目,如果项目是部署在远程的,会比较方便。
1、安装: pip install scrapyrt
2、在任意一个项目中运行scrapyrt,再此我们在quotes爬虫项目中运行。默认会运行在9080端口上。
此时我们可以在浏览器中请求此项目:http://localhost:9080/crawl.json?spider_name=quotes&url=http://quotes.toscrape.com/
返回数据如下:解析此json数据即可。
scrapyrt可以有Get和Post两种请求方式
Get:目前Get请求支持如下参数
1、spider_name:Spider名称,字符串类型,必传参数,如果传递的spider不存在,则返回404错误。
2、url:爬取链接,字符串类型,如果起始链接没有定义就必须传递这个参数,如果传递了该参数,Scrapy会直接使用此URL生成Request,而直接忽略start_requests()方法和starts_urls属性的定义。
3、callback:回调函数名称,字符串类型,可选参数,如果传递了就会使用此回调函数处理,否则使用Spider默认的回调函数
4、max_requests:最大请求数量,数值类型,可选参数,定义了scrapy执行请求的Request的最大次数限制,如果定义为5,则表示最多执行5此Request请求,其余的会被忽略。
5、start_requests:代表是否要执行start_requests方法,布尔类型,可选参数。scrapy项目中,如果定义了start_requests()方法,默认会被调用;但是在scrapyrt中,此方法默认不会被调用,如果要调用,需要传递参数为true。
Post:
也可以通过Post请求来请求scrapyrt,但是此处的Request Body必须是一个合法的Json配置,在json中可以配置更多的参数,更加灵活。
目前Json配置支持以下参数
1、spider_name:Spider名称,字符串类型,必传参数,如果传递的spider不存在,则返回404错误。
2、max_requests:最大请求数量,数值类型,可选参数,定义了scrapy执行请求的Request的最大次数限制,如果定义为5,则表示最多执行5此Request请求,其余的会被忽略。
3、request:Request配置,Json对象,必传参数,通过该参数可以定义Request的各个参数,必须指定url字段来执行爬取链接,其他字段可选。