Scrapy爬虫(九):scrapy的调试技巧

Scrapy爬虫(九):scrapy的调试技巧

本章将介绍scrapy的一些调试技巧。

scrapy的调试

在开发爬虫时调试工作是必要的且重要的,无论是开发前的准备工作,比如测试该网站在scrapy爬虫中是否可用;或者是下载时的伪装工作,比如为爬虫设置请求参数模拟浏览器;亦或是在解析下载下来的数据,比如如何使用xpath解析等等,不可能每次都运行程序爬虫来达到调试的目的,因为这样效率太低了。
在开发时我所用到的方法通常是使用浏览器调试及scrapy命令工具调试。

浏览器调试

浏览器调试通常可以通过浏览器开发工具来获取请求参数,如显示源码、局部检查、firebug等。
1、显示源码
通常我们使用浏览器右键–>显示网页源码 功能,可以获取该url页的网页源码。

2、代码检查

代码检查可以精确查看当前选中元素的html标签

3、查看请求参数
打开代码检查后再network标签下,查看请求头Request Headers
chrome浏览器

火狐浏览器自带工具

firebug工具

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Cookie:BAIDUID=B547D7C51C70A74212F12E2EC314B7B5:FG=1; BIDUPSID=B547D7C51C70A74212F12E2EC314B7B5; PSTM=1470221362; BDUSS=kRMZmIyUzNHdDhRVFdPeTRiRGQxek5UeDdPRTlBYk0wMk9SbUtPeTRnODByUzVZSVFBQUFBJCQAAAAAAAAAAAEAAAAWX1g4y87WvsTPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQgB1g0IAdYY; Hm_lvt_e9e114d958ea263de46e080563e254c4=1477032127,1477147817; MCITY=-52454%3A; LOCALGX=%u6210%u90FD%7C%36%36%39%33%7C%u6210%u90FD%7C%36%36%39%33; PSINO=3; H_PS_PSSID=1420_21093_21805_21553_21672_21678
DNT:1
Host:news.baidu.com
Proxy-Connection:keep-alive
Referer:http://news.baidu.com/
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36

查看user-agent,chrome中也可以通过chrome://version/

4、xpath调试

现在的话scrapy主要使用xpath、css、正则表达式,但是还是以xpath为主,关于这部分的知识,可以google下,这里我不在重复造轮子。

关于xpath的使用 点击
chrome浏览器
检查代码后可以在标签上右键–>Copy–>Copy XPath

结果为

//*[@id="content_right"]

火狐浏览器 可以使用firebug插件

scrapy命令调试

scrapy自带调试命令

localhost:~ yancey$ scrapy
Scrapy 1.2.0 - no active project

Usage:
  scrapy <command> [options] [args]

Available commands:
  bench         Run quick benchmark test
  commands      
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates
  runspider     Run a self-contained spider (without creating a project)
  settings      Get settings values
  shell         Interactive scraping console
  startproject  Create new project
  version       Print Scrapy version
  view          Open URL in browser, as seen by Scrapy

  [ more ]      More commands available when run from project directory

Use "scrapy <command> -h" to see more info about a command
scrapy startproject project
创建project项目
scrapy crawl project  
进入project目录运行project爬虫
scrapy version
查看scrapy版本
scrapy genspider testspider baidu.com
创建一个spider name为testspider的爬虫,start_urls为http://www.baidu.com/的爬虫
scrapy runspider testspider.py 
在未创建项目的情况下,运行一个编写在Python文件中的testspider。
scrapy fetch --nolog http://www.baidu.com/
下载baidu并标准输出
scrapy view http://www.baidu.com/ 
下载百度页并在浏览器打开

当然本处调试时,scrapy shell用的比较多
以百度首页为例 https://www.baidu.com/

scrapy shell https://www.baidu.com/

  • 操作response,查看url,使用response.url,标准输出

查看百度首页标题,xpath调试
先检查代码获取xpath,为/html/head/title

使用命令response.xpath(r'/html/head/title').extract()

优化response.xpath(r'/html/head/title/text()').extract()
结果为数组 ['百度一下,你就知道']
可以这样得出文本response.xpath(r'/html/head/title/text()').extract()[0]
或者"".join(response.xpath(r'/html/head/title/text()').extract())

关于其他命令,读者朋友可以自己捣鼓下,本处不在多讲了,就我而言调试命令主要用于解析xpath的调试。

集成开发环境(IDE)调试

关于集成开发环境的调试大家应该都会使用,本处就不在赘述了。


  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值