Scrapy是基于python的开源爬虫框架,使用起来也比较方便。具体的官网档:http://doc.scrapy.org/en/latest/

  之前以为了解python就可以直接爬网站了,原来还要了解HTML,XML的基本协议,在了解基础以后,在了解下xpath的基础上,再使用正则表达式(python下的re包提供支持)提取一定格式的信息(比如说url),就比较容易处理网页了。

  xpath是Scrapy下快速提取特定信息(如title,head,href等)的一个接口。

  

  几个简单的例子:

  /html/head/title: 选择HTML文档<head>元素下面的<title> 标签。
  /html/head/title/text(): 选择前面提到的<title> 元素下面的文本内容
  //td: 选择所有 <td> 元素
  //div[@class="mine"]: 选择所有包含 class="mine" 属性的div 标签元素

  基本的路径意义:

  

表达式 描述
nodename 选取此节点的所有子节点。
/ 从根节点选取。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。

  

  具体的使用实例:

  比如对http://www.dmoz.org/Computers/Programming/Languages/Python/Books/ 网站提取特定的信息

  1)、先在第一层tutorial文件夹下,在cmd中输入: scrapy shell http://www.dmoz.org/Computers/Programming/Languages/Python/Books/

  2)、现在比如我们需要抓取该网页的tittle,由于前面的shell命令已经实例化了一个selector的对象sel, 就输入 sel.xpath('//title') 获取了网页的标题。

  3)、比如我们想要知道该网页下的www.****.com形式的链接,可以使用xpath 结合正则表达式re提取信息,输入   sel.xpath('//@href').re("www.[0-9a-zA-Z]+\.com")

  

部分参考:http://blog.csdn.net/pleasecallmewhy/article/details/19642329

正则表达式参考:http://blog.csdn.net/pleasecallmewhy/article/details/8929576

Scrapy下xpath基本的使用方法的更多相关文章

  1. 使用scrapy中xpath选择器的一个坑点

    情景如下: 一个网页下有一个ul,这个ur下有125个li标签,每个li标签下有我们想要的 url 字段(每个 url 是唯一的)和 price 字段,我们现在要访问每个li下的url并在生成的请求中 ...

  2. Linux下Git和GitHub使用方法总结

    来源:Linux下Git和GitHub使用方法总结 1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 “sudo apt-get install git” 第二步: 到G ...

  3. Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches

    Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches 频繁的文件访问会导致系统的Cache使用量大增 $ free -m total used free shared ...

  4. linux系统下yum 安装mysql的方法

    菜鸟一个,记录下yum 安装mysql的方法,给需要的朋友也做个参考吧. 弄了个新vps,想安装最新版的mysql,网上查了相关资料,记录如下: 1.安装查看有没有安装过:          yum ...

  5. Ubuntu下deb包的安装方法 (zz)

    Ubuntu下deb包的安装方法 分类: Ubuntu10使用技巧 2010-10-11 23:49 42969人阅读 评论(3) 收藏 举报 ubuntudebdebianlinux deb是deb ...

  6. linux下生成core dump文件方法及设置

    linux下生成core dump文件方法及设置    from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...

  7. ubuntu下deb包的安装方法

    ubuntu下deb包的安装方法 简介 deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian P ...

  8. Linux下memcached安装和启动方法

    Linux下memcached安装和启动方法 1. 首先下载memcached 和 libevent 包. Memcached用到了libevent这个库用于Socket的处理.下面是下载的两个包文件 ...

  9. mac下使用glew库,方法

    mac下使用glew库,方法 分类: OpenGL2015-01-15 15:52 210人阅读 评论(0) 收藏 举报   目录(?)[+]   主要参考http://www.cnblogs.com ...

随机推荐

  1. redhat linux 6.2 安装配置GUI

    redhat6.2默认不安装GUI,启动时默认进入text模式,下面介绍下安装.配置GUI的步骤: 1.登录root 2.配置及测试yum   vi /etc/yum.repos.d/rhel-sou ...

  2. 以DefaultFuture为例,看类变量初始化顺序

    https://stackoverflow.com/questions/8517121/java-what-is-the-difference-between-init-and-clinit# < ...

  3. ShardedJedis的使用

    假定有2个 redis 服务实例(A和B)在运行,在客户端进行 set 操作: set a0 xxx set a1 xxx set a2 xxx set a3 xxx 我们希望a0, a1, a2, ...

  4. 信号处理函数的返回sigsetjmp/siglongjmp

    由于在信号处理期间自动屏蔽了正在被处理的信号,而使用setjmp/longjmp跳出信号处理程序时又不会自动将 信号屏蔽码修改会原来的屏蔽码,从而引起该信号被永久屏蔽. 可以使用sigsetjmp/s ...

  5. 遍历HashMap的方法(四)

    Map map = new HashMap(); for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { Map.Entr ...

  6. JS之Fetch

    细节叙述见以下链接:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch 1 基本概念:  WindowOrWo ...

  7. 纪念第一次ak。。。

    1.MM的数学作业 [题目大意] 今天,MM在上数学课,数学课的主题是函数.讲完以后老师留了一个家庭作业,让同学们回家思考.题目如下: 定义一个函数,F(x)表示x转成二进制后,二进制中“1”的个数. ...

  8. 取TTable 过滤后的记录数

    http://bbs.csdn.net/topics/100057274 可以用AstaClientDataSet这个控件,有filterCount这个属性.另外你还可看它的源码,就能写出filter ...

  9. 官网下载的spring-framework的一些描述

    刚下载下来是这个文件夹:

  10. 玩转树莓派:OpenHAB的入门(二)

    通过第一篇的介绍,我们现在已经安装了OpenHAB和Demo House,那么接下来我们来看一下OpenHAB是如何工作的. OpenHAB如何工作? 接下来你会在openHAB配置的共享文件夹看到s ...