zoukankan      html  css  js  c++  java
  • 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
     
  • 相关阅读:
    tkinter 写一个简易的ide
    Vue+webpack项目配置便于维护的目录结构
    爬虫:输入网页之后爬取当前页面的图片和背景图片,最后打包成exe
    linux vue项目+npm run build + nginx
    Android 进阶自定义 ViewGroup 自定义布局
    Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了
    桶排序
    Test CMake run finished with errors
    搭建私人云盘
    Java中 / 和 %
  • 原文地址:https://www.cnblogs.com/My-Sun-Shine/p/13585557.html
Copyright © 2011-2022 走看看