Scrapy shell 构建带参数的请求问题,以及常用终端命令
  • 分类:Python
  • 发表:2018-11-27
  • 围观(6,221)
  • 评论(0)

构建带参数的scrapy shell 请求

在Scrapy开发过程中,总免不了做调试调试,毕竟每条Item的获取都是要经过反复测试才能成功获取.而scrapy提供了一个方便的控制台终端,以便我们在开发过程中调试spider,使用前需安装iPython,提高程序开发效率.

//终端指令
scrapy shell <url>

//打印日志
scrapy shell "https://www.weiney.com"

//不打印日志

scrapy shell "https://www.weiney.com" --nolog

但是这种方式仅针对简单网页,若爬取网站有严格的访问限制,限制访客的headers,cookies等.如何在终端生成一个带参数的Request在文档中并没有明确给出,这里给出具体的构建方法.

scrapy shell //进入scrapy shell终端
In [1]: cookie = {"name": "Weiney"} # 构建cookies
In [2]: req = scrapy.Request(url="https://www.weiney.com", cookies=cookie) # 构建带参数的Request,参数自定
In [3]: fetch(req) # 通过 request 爬取,并更新相关对象

通过构建带参数的Request,可以方便的适应复杂环境下的爬虫需求

Scrapy 常用终端命令

scrapy startproject projectname //创建scrapy项目

scrapy genspider weiney www.weiney.com //生成名为weiney的spider,并设置allowed_domains为www.weiney.com

scrapy crawl weiney //启动名为weiney的spider

scrapy list //列出项目所有spider

scrapy fetch www.weiney.com //执行一次请求,并调用scrapy的下载器,返回网页的源码

scrapy view www.www.weiney.com //请求网址,输出网址的源码,并将该网页保存成一个文件,使用浏览器打开。

scrapy runspider baidu.py //同样是运行spider,与crawl的区别是crawl跟的是spider名,runspider跟的是文件名


共有 0 条评论

Top