Python3 Scrapy爬虫框架-Scrapyrt部署

pip install scrapyrt    # 安装
scrapyrt                # 在任意一个Scrapy项目运行如下命令即可启动HTTP服务
scrapyrt -p 9081        # 更换运行端口
  • 新建Scrapy项目,在项目目录下运行Scrapyrt,假设当前服务运行在9080端口上
  • GET请求
    • spider_name:Spider名称,字符串类型,必传参数;如果传递的Spider名称不存在,则返回404错误
    • url:爬取链接,字符串类型,如果起始链接没有定义就必须要传递这个参数;如果传递了该参数,Scrapy会直接用该URL生成Request,而直接忽略start_requests()方法和start_urls属性的定义
    • callback:回调函数名称,字符串类型,可选参数;如果传递了就会使用此回调函数处理,否则会默认使用Spider内定义的回调函数
    • max_requests:最大请求数量,数值类型,可选参数。它定义了Scrapy执行请求的Request的最大限制,如定义为5,则表示最多只执行5次Request请求,其余的则会被忽略
    • start_requests:代表是否要执行start_requests方法,布尔类型,可选参数;Scrapy项目中如果定义了start_requests()方法,那么项目启动时会默认调用该方法;但是在Scrapyrt中就不一样了,Scrapyrt默认不执行start_requests()方法,如果要执行,需要将start_requests参数设置为true
  • 执行如下命令或者直接使用浏览器访问
curl http://localhost:9080/crawl.json?spider_name=quotes&url=http://quotes.toscrape.com/
  • POST请求
    • spider_name:Spider名称,字符串类型,必传参数;如果传递的Spider名称不存在,则返回404错误
    • max_requests:最大请求数量,数值类型,可选参数;它定义了Scrapy执行请求的Request的最大限制,如定义为5,则表示最多只执行5次Request请求,其余的则会被忽略
    • request:Request配置,JSON对象,必传参数;通过该参数可以定义Request的各个参数,必须指定url字段来指定爬取链接,其他字段可选
curl http://localhost:9080/crawl.json -d '{"request": {"url": "http://quotes.toscrape.com/", "dont_filter": "True", "callback": "parse", "cookies": {"foo": "bar"}}, "max_requests": 2, "spider_name": "quotes"}'
  • 浏览器打不开网址,报错:builtins.AttributeError: 'int' object has no attribute 'splitlines'
  • 解决方法:版本回退
pip install Twisted==18.9.0 # 需要通过安装whl文件进行安装
pip install redis==3.0.1
pip install Scrapy==1.6.0
 
posted @ 2020-08-30 16:16  陨落的星尘  阅读(296)  评论(0编辑  收藏  举报