Scrapy爬虫(九):scrapy的调试技巧
来源:互联网 发布:电脑定时闹钟软件 编辑:程序博客网 时间:2024/04/28 05:06
Scrapy爬虫(九):scrapy的调试技巧
- Scrapy爬虫九scrapy的调试技巧
- scrapy的调试
- 浏览器调试
- scrapy命令调试
- 集成开发环境IDE调试
本章将介绍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.8Accept-Encoding:gzip, deflate, sdchAccept-Language:zh-CN,zh;q=0.8Cookie: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_21678DNT:1Host:news.baidu.comProxy-Connection:keep-aliveReferer:http://news.baidu.com/Upgrade-Insecure-Requests:1User-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$ scrapyScrapy 1.2.0 - no active projectUsage: 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 directoryUse "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)调试
关于集成开发环境的调试大家应该都会使用,本处就不在赘述了。
- 专题概要
- 爬虫简介
- scrapy架构及原理
- imdb.cn爬虫实例
- 有限爬取深度实例
- 多个爬虫组合实例
- 爬虫数据存储实例
- 中间件的使用实例
- scrapy的调试技巧
- 爬虫总结以及扩展
- Scrapy爬虫(九):scrapy的调试技巧
- 爬虫技巧:在pycharm 下 调试 scrapy项目
- Scrapy爬虫的尝试
- scrapy爬虫
- Scrapy 爬虫
- scrapy爬虫
- 爬虫-scrapy
- 【Scrapy-02】图片网站的爬虫开发技巧和案例
- Scrapy:Python的爬虫框架
- 基于scrapy的小爬虫
- 使用scrapy编写的爬虫
- Python的爬虫框架 Scrapy
- scrapy爬虫框架的使用
- Scrapy:Python的爬虫框架
- 基于scrapy的简单爬虫
- 一个简单的scrapy爬虫
- scrapy 爬虫遇到的坑
- scrapy爬虫的几个案例
- textview实现自由复制
- Ubuntu14.04下PCL安装
- 显示每个交换发生后的数组
- str
- 线程编程之死锁
- Scrapy爬虫(九):scrapy的调试技巧
- faster rcnn+gtx1080+caffe
- git 上传文件到仓库上提示:origin does not to be a git repository
- 安卓端的线程池
- Handler内存泄漏分析及解决
- snmp++编译错误问题解决方法
- 【AI每日播报】首次超越LSTM : Facebook 门卷积网络新模型能否取代递归模型
- angularJs关于指令的一些冷门属性
- 线程编程之读写锁