环境


  1. ubuntu
  2. scrapy
  3. ipython

为什么要使用 scrapy shell?


Scrapy终端是一个交互终端,供您在未启动spider的情况下尝试及调试您的爬取代码。 其本意是用来测试提取数据的代码,不过您可以将其作为正常的Python终端,在上面测试任何的Python代码。

该终端是用来测试XPath或CSS表达式,查看他们的工作方式及从爬取的网页中提取的数据。 在编写您的spider时,该终端提供了交互性测试您的表达式代码的功能,免去了每次修改后运行spider的麻烦。

一旦熟悉了Scrapy终端后,您会发现其在开发和调试spider时发挥的巨大作用。

怎么使用 scrapy shell?


  1. 使用命令进入 scrapy shell "需要访问的地址"
  2. 使用命令:response (查看目标状态响应状态)
  3. 提取数据:response.xpath('xxx').extract()
  4. 改变抓取url:fetch(url)
  5. 推出:exit()

补充


  • 抓取url返回403,可能是没有加报头,利用-s参数,如下所示:
scrapy shell -s USER_AGENT='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1
)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36' 
  • 常用选择器
    1. response.xpath
    2. response.css
    3. response.selector.re
  • 解析出来是一个selector对象,需要用extract()方法转成list。
  • xpath解析常用函数
    1. text():匹配当前节点直系内的文本
    2. string():匹配当前节点内所有文本
    3. contains (): //div[contains(@id,'in')] ,表示选择所有id中包含有’in’的div节点
    4. starts-with(): //div[starts-with(@id,'in')] ,表示选择以’in’开头的id属性的div节点

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐