在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的。

一、爬虫类编写(spider.py)

from scrapy.spider import BaseSpider

class test(BaseSpider):
name = "test"
allowed_domains = ["yuedu.baidu.com"]
start_urls = ["http://yuedu.baidu.com/book/list/0?od=0&show=1&pn=0"] def parse(self, response):
print response.url

二、爬网页:运行scrapy项目

这里选择从命令行启动运行项目的方式,一定要注意工程目录结构,能够运行scrapy命令的只有scrapy安装的根目录下。

cd到scrapy的根目录,我的是D:\Python27\,然后运行scrapy命令:scrapy runspider test\test\spiders\spider.py。(或者直接运行工程项目的命令scrapy crawl test),可以看到爬虫爬取的过程有一些debug信息输出:

scrapy给爬虫的start_urls属性中的每个url创建了一个scrapy.http.Request对象,指定parse()方法为回调函数。当这些Request被调度并执行,之后通过parse()返回scrapy.http.Response对象,返回给爬虫。

三、取网页:网页解析

这里用shell爬取网页,cd到项目的根目录test\下,在cmd中输入:

scrapy shell http://yuedu.baidu.com

可以看到结果如下图:

刚才的整个过程中,shell载入url后获得了响应,由本地变量response存储响应结果。

来看下response的内容,输入response.body可以查看response的body部分,即抓到的网页内容:

要查看head部分,输入response.headers:

四、用选择器xpath提取网页

之前提取网页是用的正则,这里选择器xpath提供了更好的接口。shell有一个selector对象sel,可以根据返回的数据类型自动选择最佳的解析方式(XML or HTML),无需再指明了。

1.抓取网页标题,即<titie>标签,在命令行里输入:response.selector.xpath(‘//title’)

或者:response.xpath(‘//title’)

2.抓取<title>下的<text>内容,命令sel.xpath(‘//title/text()’).extract()

先写到这里,下篇文章给出一个关于scrapy项目的完整实例。

原创文章,转载请注明出处:http://blog.csdn.net/dianacody/article/details/39753933

最新文章

  1. 一键系统优化15项脚本,适用于Centos6.x
  2. Xcode升级更新后,恢复cocoapods以及插件的方法
  3. android自定义TabView实现圆角列表
  4. frameset框架下,刷新整个页面
  5. 属性的定义以及@synthesize的使用
  6. DISCOVAR de novo
  7. Linux环境下常用regexp的使用
  8. Google技术专家的建议:各种SdkVersion如何选择?
  9. Android中使用JNI获得APK签名的哈希值
  10. OO前三次作业总结
  11. [图解Java]读写锁ReentrantReadWriteLock
  12. SpringSecurity自定义用户认证逻辑
  13. Python中加入中文注释
  14. VPC配置介绍
  15. UiAutomator 代码记录: 随机创建新联系人
  16. SQLServer分页查询笔记
  17. 王勇详谈 Linux Deepin 背后的故事
  18. Hadoop与Spark之间的比较
  19. JAVA-6NIO之FileChannel
  20. python基础系列教程——Python3.x标准模块库目录

热门文章

  1. Python 单元测试 之setUP() 和 tearDown()
  2. python之异步IO
  3. 流畅的python学习笔记:第十三章:重载运算符__add__,__iadd__,__radd__,__mul__,__rmul__,__neg__,__eq__,__invert__,__pos__
  4. Java一致性的实现
  5. HDU - 1241 Oil Deposits 【DFS】
  6. Algorithm: pattern searching
  7. SPOJ - GSS1 —— 线段树 (结点信息合并)
  8. zabbix性能优化等
  9. Android6.0 旋转屏幕(五)WMS启动应用流程(屏幕方向相关)
  10. BZOJ 2019 [Usaco2009 Nov]找工作:spfa【最长路】【判正环】