基于Scrapy框架的python网络爬虫(1)

1、搭建环境

这里我使用的是anaconda,anaconda里面集成了很多关于python科学计算的第三方库,主要是安装方便,anaconda中自带Spyder。
这里下载anaconda
比较推荐使用Python2.7
在anaconda下安装Scrapy也很简单!CMD进入命令行,直接输入conda install scrapy,然后点“y”,很简单就可以安装成功。
这样就搭建好了环境。

2、初步了解Scrapy

Scrapy官网教程,建议看看哦
首先应该解决的是如何创建一个新的scrapy项目

  • 从命令行进入要创建新项目的目录下,scrapy startproject newone
  • 打开目录即可看到一个新的文件夹,打开文件夹可以看到:
    这里写图片描述
  • 其中,items.py中的items作为加载所爬取数据的容器,它的结构像Python中的字典一样。打开你的items.py可以看到如下代码:
    name = scrapy.Field()就是一个典型的item,用来作为所爬取的name项的容器
class NewoneItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass

介绍了存储爬取数据的容器,那么怎么爬取数据呢。在这之前我们需要一些XPath的知识

XPath教程
举一些简单的小例子来看一下XPath的用法:

  1. /html/head/title 选择目录HTML下head元素下的title元素
  2. /html/head/title/text() 选择title元素的文本内容
  3. //td 选择所有的td元素
  4. //div[@class=”mine”] 选择所有属性class=”mine”的div元素

为了方便使用XPaths,Scrapy提供Selector 类,在Scrapy里面,Selectors 有四种基础的方法:

  • xpath():返回一系列的selectors,每一个select表示一个xpath参数表达式选择的节点
  • css():返回一系列的selectors,每一个select表示一个css参数表达式选择的节点
  • extract():返回一个unicode字符串,为选中的数据
  • re():返回一串一个unicode字符串,为使用正则表达式抓取出来的内容

通过一个实际的例子更深刻的了解一下吧!
使用下面这个网站来作为示例
http://www.dmoz.org/Computers/Programming/Languages/Python/Books/
使用shell爬取网页来观察XPath的功能
在命令行中输入:

scrapy shell http://www.dmoz.org/Computers/Programming/Languages/Python/Books/ 

在Shell载入后,你将获得response回应,存储在本地变量 response中。
所以如果你输入response.body,你将会看到response的body部分,也就是抓取到的页面内容:
这里写图片描述
类似的可以输入response.headers:
这里写图片描述
接下来观察一下网页:
这里写图片描述
我们来爬取Computers,Programming,Languages,Python这几个元素,在浏览器上右键审查元素来观察这段HTML代码。
这里写图片描述
根据这段代码写出

sel.xpath('//a[@class="breadcrumb"]/text()').extract()

其中sel是selector对象
这里写图片描述
xpath很灵活,可以用不同的写法得出相同结果。

接下来需要来写实际爬取数据的代码,我们可以通过实际例子来学习,敬请期待ing

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值